private void LakeResizeControl_MouseMove(object sender, MouseEventArgs e)
        {
            if (_lake != null)
            {
                _mousePosition = new Point(e.X, e.Y);
                if (_mouseDown && _selectedCorner.HasValue)
                {
                    this.Invalidate();
                }
                else
                {
                    double minDistance = 25.0;

                    CoordinatePoint a2 = new CoordinatePoint(new Coordinate(_lake.South), new Coordinate(_lake.East), 0);
                    CoordinatePoint b2 = new CoordinatePoint(new Coordinate(_lake.North), new Coordinate(_lake.West), 0);
                    Point           tl = CoordinatesToScreen(b2);
                    Point           br = CoordinatesToScreen(a2);
                    Point           tr = new Point(br.X, tl.Y);
                    Point           bl = new Point(tl.X, br.Y);

                    double tlDistance = CoordinatePoint.TwoDimensionalDistance(_mousePosition.X, _mousePosition.Y, tl.X, tl.Y);
                    double brDistance = CoordinatePoint.TwoDimensionalDistance(_mousePosition.X, _mousePosition.Y, br.X, br.Y);
                    double trDistance = CoordinatePoint.TwoDimensionalDistance(_mousePosition.X, _mousePosition.Y, tr.X, tr.Y);
                    double blDistance = CoordinatePoint.TwoDimensionalDistance(_mousePosition.X, _mousePosition.Y, bl.X, bl.Y);

                    if (tlDistance <= brDistance && tlDistance <= trDistance && tlDistance <= blDistance && tlDistance < minDistance)
                    {
                        _selectedCorner = SelectedCorner.TopLeft;
                        this.Cursor     = Cursors.PanNW;
                    }
                    else if (brDistance <= tlDistance && brDistance <= trDistance && brDistance <= blDistance && brDistance < minDistance)
                    {
                        _selectedCorner = SelectedCorner.BottomRight;
                        this.Cursor     = Cursors.PanSE;
                    }
                    else if (trDistance <= tlDistance && trDistance <= brDistance && trDistance <= blDistance && trDistance < minDistance)
                    {
                        _selectedCorner = SelectedCorner.TopRight;
                        this.Cursor     = Cursors.PanNE;
                    }
                    else if (blDistance <= tlDistance && blDistance <= brDistance && blDistance <= trDistance && blDistance < minDistance)
                    {
                        _selectedCorner = SelectedCorner.BottomLeft;
                        this.Cursor     = Cursors.PanSW;
                    }
                    else
                    {
                        _selectedCorner = null;
                        this.Cursor     = Cursors.No;
                    }
                }
            }
        }