protected override bool MsGraphControlOnMouseDownEvent(ZedGraphControl sender, MouseEventArgs e)
 {
     _peakResize = null;
     if (base.MsGraphControlOnMouseDownEvent(sender, e))
     {
         return(true);
     }
     if ((_peakResize = PeakResizeFromPoint(e.Location)) != null)
     {
         sender.Cursor = _peakResize.GetCursor();
         return(true);
     }
     return(false);
 }
        protected override bool MsGraphControlOnMouseMoveEvent(ZedGraphControl sender, MouseEventArgs e)
        {
            if (_peakResize != null)
            {
                var         peakDisplay = _peakResize.PeakDisplay;
                PointPair[] points      = new[]
                {
                    new PointPair(peakDisplay.Start, peakDisplay.Height),
                    new PointPair(peakDisplay.End, peakDisplay.Height),
                };
                var    screenPt = new PointF(e.Location.X - _peakResize.MousePt.X + _peakResize.CoordPt.X, _peakResize.CoordPt.Y);
                double x, y;
                MsGraphControl.GraphPane.ReverseTransform(screenPt, out x, out y);
                switch (_peakResize.LineSegment)
                {
                case LineSegment.Start:
                    points[0] = new PointPair(x, points[0].Y);
                    break;

                case LineSegment.End:
                    points[1] = new PointPair(x, points[0].Y);
                    break;

                case LineSegment.Middle:
                    points = new[]
                    {
                        new PointPair(x, points[0].Y),
                        new PointPair(x - points[0].X + points[1].X, points[1].Y)
                    };
                    break;
                }

                if (peakDisplay.HorizontalLine != null)
                {
                    peakDisplay.HorizontalLine.RemovePoint(1);
                    peakDisplay.HorizontalLine.RemovePoint(0);
                    peakDisplay.HorizontalLine.AddPoint(points[0]);
                    peakDisplay.HorizontalLine.AddPoint(points[1]);
                }
                foreach (var lineItemPt in new[] {
                    new KeyValuePair <LineItem, PointPair>(peakDisplay.StartVerticalLine, points[0]),
                    new KeyValuePair <LineItem, PointPair>(peakDisplay.EndVerticalLine, points[1])
                })
                {
                    if (lineItemPt.Key == null)
                    {
                        continue;
                    }
                    lineItemPt.Key.RemovePoint(1);
                    lineItemPt.Key.RemovePoint(0);
                    lineItemPt.Key.AddPoint(new PointPair(lineItemPt.Value.X, peakDisplay.Height));
                    lineItemPt.Key.AddPoint(new PointPair(lineItemPt.Value.X, 0));
                }
                MsGraphControl.Invalidate();
                sender.Cursor = _peakResize.GetCursor();
                return(true);
            }
            if (base.MsGraphControlOnMouseMoveEvent(sender, e))
            {
                return(true);
            }
            PeakResize peakResize = PeakResizeFromPoint(e.Location);

            if (peakResize != null)
            {
                sender.Cursor = peakResize.GetCursor();
                return(true);
            }
            return(false);
        }
 protected override bool MsGraphControlOnMouseDownEvent(ZedGraphControl sender, MouseEventArgs e)
 {
     _peakResize = null;
     if (base.MsGraphControlOnMouseDownEvent(sender, e))
     {
         return true;
     }
     if ((_peakResize = PeakResizeFromPoint(e.Location)) != null)
     {
         sender.Cursor = _peakResize.GetCursor();
         return true;
     }
     return false;
 }