示例#1
0
        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);
        }
示例#2
0
 private void SetAction(ChartBoxAction action, string trace)
 {
     // Trace.WriteLine(string.Format("{0}:{1}", trace, action));
     _action = action;
 }