private void pictureBox_Paint(object sender, PaintEventArgs e) { Graphics graphics = e.Graphics; switch (MODE) { case CircleMovingMode.mirror: var mouseMovedFromCenterDeltaX = mouseLocationPoint.X - screenCenter.X; var mouseMovedFromCenterDeltaY = mouseLocationPoint.Y - screenCenter.Y; circleLeftCornerPoint = new Point(screenCenter.X - mouseMovedFromCenterDeltaX, screenCenter.Y - mouseMovedFromCenterDeltaY); break; case CircleMovingMode.controlledByKeyBoard: break; default: circleLeftCornerPoint = new Point(mouseLocationPoint.X - radius, mouseLocationPoint.Y - radius);; break; } rectangle = new Rectangle(circleLeftCornerPoint, new Size(2 * radius, 2 * radius)); graphics.FillEllipse(Brushes.Cyan, rectangle); if (MODE == CircleMovingMode.controlledByKeyBoard) { MODE = CircleMovingMode.ordinary; } }
private void pictureBox_MouseUp(object sender, MouseEventArgs e) { if (MODE == CircleMovingMode.ordinary) { MODE = CircleMovingMode.mirror; } else { MODE = CircleMovingMode.ordinary; } }
private void FifthTaskForm_KeyUp(object sender, KeyEventArgs e) { MODE = CircleMovingMode.controlledByKeyBoard; if (e.KeyCode == Keys.Up) { circleLeftCornerPoint.Y -= movingByKeyboardControlStep; } if (e.KeyCode == Keys.Right) { circleLeftCornerPoint.X += movingByKeyboardControlStep; } if (e.KeyCode == Keys.Down) { circleLeftCornerPoint.Y += movingByKeyboardControlStep; } if (e.KeyCode == Keys.Left) { circleLeftCornerPoint.X -= movingByKeyboardControlStep; } pictureBox.Refresh(); }