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(); }