private void position_MouseDown(object sender, MouseEventArgs e)
 {
     if (e.Button != MouseButtons.Left)
     {
         vc.DoResize(1, 0, 0, 1, 1, true);
         Dispose();
         return;
     }
     else if (posx >= 0 && posx <= 12 && posy >= 0 && posy <= 12)
     {
         basex = posx;
         basey = posy;
     }
     else
     {
         basex = basey = -1;
     }
     position.Invalidate();
 }
        private void DrawForm_MouseUp(object sender, MouseEventArgs e)
        {
            if (mouseDown == MouseButtons.None)
            {
                return;
            }
            if (mouseDown == MouseButtons.Left)
            {
                if (acceptRect.Width > 0)
                {
                    vc.DoResize(0, acceptRect.X, acceptRect.Y, acceptRect.Width, acceptRect.Height, true);
                    quit();
                    return;
                }
                else if (ctrl && shift)
                {
                    if (Math.Abs(mouseX - downX) > Math.Abs(mouseY - downY))
                    {
                        int gridHeight = Math.Min(gridMaxY - downY, downY - gridMinY);
                        for (int yy = gridMinY + gridHeight; yy < gridMaxY - 7; yy += gridHeight)
                        {
                            splitsY.Add(yy);
                        }
                    }
                    else
                    {
                        int gridWidth = Math.Min(gridMaxX - downX, downX - gridMinX);
                        for (int xx = gridMinX + gridWidth; xx < gridMaxX - 7; xx += gridWidth)
                        {
                            splitsX.Add(xx);
                        }
                    }
                }
                else
                {
                    if (Math.Abs(mouseX - downX) > Math.Abs(mouseY - downY))
                    {
                        splitsY.Add(downY);
                    }
                    else
                    {
                        splitsX.Add(downX);
                    }
                }
            }
            else
            {
                bool deleted = false;

                for (int i = 0; i < splitsX.Count; i++)
                {
                    int x = splitsX[i];
                    if (x >= Math.Min(downX, mouseX) && x <= Math.Max(downX, mouseX))
                    {
                        deleted = true;
                        splitsX.RemoveAt(i);
                        i--;
                    }
                }
                for (int i = 0; i < splitsY.Count; i++)
                {
                    int y = splitsY[i];
                    if (y >= Math.Min(downY, mouseY) && y <= Math.Max(downY, mouseY))
                    {
                        deleted = true;
                        splitsY.RemoveAt(i);
                        i--;
                    }
                }
                if (!deleted)
                {
                    splitsX.Clear();
                    splitsY.Clear();
                }
            }
            mouseDown = MouseButtons.None;
            Invalidate();
        }