Exemple #1
0
        protected override void OnMouseDown(MouseEventArgs e)
        {
            switch (e.Button)
            {
            case MouseButtons.Left:
                switch (_action)
                {
                case ChartBoxAction.EnterHSplitBottom:
                    this.SetAction(ChartBoxAction.ChangeHSplitBottom, "OnMouseDown");
                    _dy = this.Height - e.Y;
                    break;

                case ChartBoxAction.EnterHSplitTop:
                    this.SetAction(ChartBoxAction.ChangeHSplitTop, "OnMouseDown");
                    _dy = e.Y;
                    break;
                }
                break;
            }

            /* сообщение клиенту */
            for (int i = 0; i < _listArea.Count; i++)
            {
                ChartBoxArea panel = _listArea[i];
                if (panel.Visible && panel.Bounds.Contains(e.Location))
                {
                    panel.WmMouseDown(this.MouseEventToClient(panel, e));
                }
            }
            base.OnMouseDown(e);
        }
Exemple #2
0
        private MouseEventArgs MouseEventToClient(ChartBoxArea panel, MouseEventArgs e)
        {
            int x = e.X - panel.Left;
            int y = e.Y - panel.Top;

            return(new MouseEventArgs(e.Button, e.Clicks, x, y, e.Delta));
        }
Exemple #3
0
        protected override void OnMouseUp(MouseEventArgs e)
        {
            switch (_action)
            {
            case ChartBoxAction.ChangeHSplitBottom:
            case ChartBoxAction.ChangeHSplitTop:
                this.Cursor = Cursors.Default;
                this.SetAction(ChartBoxAction.None, "OnMouseUp  ");
                break;
            }

            /* сообщение клиенту */
            for (int i = 0; i < _listArea.Count; i++)
            {
                ChartBoxArea panel = _listArea[i];
                if (panel.Visible && panel.Bounds.Contains(e.Location))
                {
                    panel.WmMouseUp(this.MouseEventToClient(panel, e));
                }
            }
            base.OnMouseUp(e);
        }
Exemple #4
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);
        }