protected override void OnMouseMove(MouseEventArgs e) { base.OnMouseMove(e); if (this._mouseDown) { this.UpdatePosition(e.Y); } else { if (this.ColorProvider != null && e.Y > _buttonSize && e.Y < (this.Height - _buttonSize)) { int scrollPosition = Math.Max(0, (e.Y - this.Top - _buttonSize) * this.Maximum / (this.Height - _buttonSize * 2)); if (_lastPreviewScrollPosition != scrollPosition) { Point p = this.PointToScreen(new Point(this.ClientRectangle.Right, e.Y)); if (_codeTooltip == null) { _codeTooltip = this.ColorProvider.GetPreview(scrollPosition); } else { _codeTooltip.ScrollToLineIndex(scrollPosition); } if (_codeTooltip != null) { _codeTooltip.Left = p.X + 5; _codeTooltip.Top = p.Y; _codeTooltip.Show(); } _lastPreviewScrollPosition = scrollPosition; } } } }
protected override void OnMouseLeave(EventArgs e) { base.OnMouseLeave(e); if (_codeTooltip != null) { _codeTooltip.Close(); _codeTooltip = null; } _lastPreviewScrollPosition = -1; _tmrScroll.Stop(); }
protected override void OnMouseLeave(EventArgs e) { base.OnMouseLeave(e); if (_codeTooltip != null) { bool restoreFocus = _codeTooltip.NeedRestoreFocus; _codeTooltip.Close(); if (restoreFocus) { this.Parent.Focus(); } _codeTooltip = null; } _lastPreviewScrollPosition = -1; _tmrScroll.Stop(); }