Exemple #1
0
        private void XYPlotCtrl_MouseDown(object sender, MouseEventArgs e)
        {
            PlotViewMouseMode mouseMode = MouseMode;

            if (Control.ModifierKeys == Keys.Shift)
            {
                mouseMode = PlotViewMouseMode.Zoom;
            }
            else if (Control.ModifierKeys == Keys.Control)
            {
                mouseMode = PlotViewMouseMode.Pan;
            }

            if (e.Button == MouseButtons.Left)
            {
                PtMouseStart = e.Location;
                PtMouseEnd   = PtMouseStart;

                switch (mouseMode)
                {
                case PlotViewMouseMode.None:
                    DrawReversibleCrossLines(PtMouseStart);
                    break;

                default:
                    break;
                }
            }
            else
            {
                PtMouseStart = e.Location;
            }
        }
Exemple #2
0
        private void XYPlotCtrl_MouseMove(object sender, MouseEventArgs e)
        {
            Point ptCurrent = e.Location;

            if (ptCurrent == PtMouseStart)
            {
                return;
            }
            //if (Math.Abs(ptCurrent.X - PtMouseStart.X) <= 2 &&
            //    Math.Abs(ptCurrent.Y - PtMouseStart.Y) <= 2) return;

            PlotViewMouseMode mouseMode = MouseMode;

            if (Control.ModifierKeys == Keys.Shift)
            {
                mouseMode = PlotViewMouseMode.Zoom;
            }
            else if (Control.ModifierKeys == Keys.Control)
            {
                mouseMode = PlotViewMouseMode.Pan;
            }

            // Check if the left mouse button is pressed.
            if (e.Button == MouseButtons.Left)
            {
                switch (mouseMode)
                {
                case PlotViewMouseMode.Zoom:
                    // erase previous rectangle
                    DrawReversibleRectangle(PtMouseStart, PtMouseEnd);

                    // draw new rectangle
                    DrawReversibleRectangle(PtMouseStart, ptCurrent);
                    break;

                case PlotViewMouseMode.Pan:
                    // erase previous rectangle
                    //DrawReversibleRectangle(PtMouseStart, PtMouseEnd);
                    DrawReversibleLine(PtMouseStart, PtMouseEnd);

                    // draw new rectangle
                    //DrawReversibleRectangle(PtMouseStart, ptCurrent);
                    DrawReversibleLine(PtMouseStart, ptCurrent);
                    break;

                case PlotViewMouseMode.Select:
                    // erase previous rectangle
                    DrawReversibleRectangle(PtMouseStart, PtMouseEnd);

                    // draw new rectangle
                    DrawReversibleRectangle(PtMouseStart, ptCurrent);
                    break;

                case PlotViewMouseMode.None:
                    XYPlot xyPlot = GetXYPlot(PtMouseStart);
                    if (xyPlot != null)
                    {
                        // erase previous cross lines
                        DrawReversibleCrossLines(PtMouseEnd);

                        // draw new cross lines
                        DrawReversibleCrossLines(ptCurrent);
                    }
                    break;

                default:
                    break;
                }
            }

            PtMouseEnd = ptCurrent;
        }
Exemple #3
0
        private void XYPlotCtrl_MouseUp(object sender, MouseEventArgs e)
        {
            //using (new WaitCursor())
            {
                PlotViewMouseMode mouseMode = MouseMode;
                if (Control.ModifierKeys == Keys.Shift)
                {
                    mouseMode = PlotViewMouseMode.Zoom;
                }
                else if (Control.ModifierKeys == Keys.Control)
                {
                    mouseMode = PlotViewMouseMode.Pan;
                }

                if (e.Button == MouseButtons.Left)
                {
                    PtMouseEnd = e.Location;

                    XYPlot xyPlot = GetXYPlot(PtMouseStart);
                    if (xyPlot != null)
                    {
                        switch (mouseMode)
                        {
                        case PlotViewMouseMode.Zoom:
                            if (PtMouseStart != Point.Empty)
                            {
                                xyPlot.Zoom(PtMouseStart, PtMouseEnd);
                                DrawReversibleRectangle(PtMouseStart, PtMouseEnd);
                                this.Invalidate();
                            }
                            break;

                        case PlotViewMouseMode.Pan:
                            if (PtMouseStart != Point.Empty)
                            {
                                xyPlot.Pan(PtMouseStart, PtMouseEnd);
                                //DrawReversibleRectangle(PtMouseStart, PtMouseEnd);
                                DrawReversibleLine(PtMouseStart, PtMouseEnd);
                                this.Invalidate();
                            }
                            break;

                        //case PlotViewMouseMode.Select:
                        //    Select(xyPlot, PtMouseStart, PtMouseEnd);
                        //    DrawReversibleRectangle(PtMouseStart, PtMouseEnd);
                        //    this.Invalidate();
                        //    break;

                        case PlotViewMouseMode.None:
                            DrawReversibleCrossLines(PtMouseEnd);
                            break;

                        default:
                            break;
                        }
                    }
                    PtMouseStart = Point.Empty;
                    PtMouseEnd   = Point.Empty;
                }
            }
        }