protected override void OnMouseMove(MouseEventArgs e) { if (e.Button == MouseButtons.None) { ChartBoxAction newAction = ChartBoxAction.None; if (this.SplitTop) { if (_splitTopRect.Contains(e.Location)) { newAction = ChartBoxAction.EnterHSplitTop; } } if (this.SplitBottom) { if (_splitBottomRect.Contains(e.Location)) { newAction = ChartBoxAction.EnterHSplitBottom; } } if (newAction == ChartBoxAction.EnterHSplitBottom || newAction == ChartBoxAction.EnterHSplitTop) { this.Cursor = Cursors.HSplit; } else { this.Cursor = Cursors.Default; } this.SetAction(newAction, "OnMouseMove"); } else { switch (e.Button) { case MouseButtons.Left: switch (_action) { case ChartBoxAction.ChangeHSplitBottom: this.ChangeSize(e); break; case ChartBoxAction.ChangeHSplitTop: this.ChangeLocation(e); break; } break; } } /* сообщение клиенту */ if (e.Button == MouseButtons.None) { _panelsMouseMove.Clear(); for (int i = 0; i < _listArea.Count; i++) { ChartBoxArea area = _listArea[i]; if (area.Visible && area.Bounds.Contains(e.Location)) { _panelsMouseMove.Add(area); area.WmMouseMove(this.MouseEventToClient(area, e)); } } } else { for (int i = 0; i < _panelsMouseMove.Count; i++) { ChartBoxArea area = _panelsMouseMove[i]; area.WmMouseMove(this.MouseEventToClient(area, e)); } } base.OnMouseMove(e); }
private void SetAction(ChartBoxAction action, string trace) { // Trace.WriteLine(string.Format("{0}:{1}", trace, action)); _action = action; }