// mouse event handler private void imagePanel_MouseDown(object sender, MouseEventArgs e) { // if not on image panel do nothing if (!imagePanel.ClientRectangle.Contains(e.Location)) { return; } if (e.Button == MouseButtons.Left) { // set rect in focus currentlyInFocus = rectangles.contains(e.Location); if (currentlyInFocus.Item1) { rectangles.resetFocusList(); someoneIsInFocus = true; if (someoneIsInFocus) { rectangles.setFocus(currentlyInFocus.Item2); } imagePanel.Refresh(); } else { int inFocus = rectangles.inFocusIndex(); Rectangle rectInFocus = rectangles.findInFocus(); // set rectangle center coordinates to mouse coordinates if (inFocus != -1) { rectangles.setRectCoordinates(inFocus, e.X - rectInFocus.Width / 2, e.Y - rectInFocus.Height / 2); } imagePanel.Refresh(); } } }