How to make a PictureBox move in C#
By FoxLearn 7/18/2024 8:12:10 AM 13.26K
We will create a custom PictureBox control allows you to move image in picturebox with mouse using c# code.
Creating a new Windows Forms Application project, then create a new class named CustomPictureBox and and make it inherit from PictureBox control.
How to create custom control in c#
public class CustomPictureBox : PictureBox { public CustomPictureBox(IContainer container) { container.Add(this); } Point point; protected override void OnMouseDown(MouseEventArgs e) { base.OnMouseDown(e); point = e.Location; } protected override void OnMouseMove(MouseEventArgs e) { base.OnMouseMove(e); if (e.Button == MouseButtons.Left) { this.Left += e.X - point.X; this.Top += e.Y - point.Y; } } }
Calculate the new position for the PictureBox
based on the mouse coordinates (e.X
and e.Y
), then adjust the position so that the mouse cursor is at the center of the PictureBox
by subtracting its width and height from the coordinates.
Update the Location
property of the PictureBox
with the new calculated coordinates.
C# Moving picturebox with mouse
You need to handle the MouseMove
event of the Form to track the mouse movement and update the position of the PictureBox
. You can override the OnMouseDown and OnMouseMove event handlers that allows you to move a PictureBox with mouse inside a form.
You can do the same with another control that lets you move a control by dragging it with the mouse in C#
How to add custom control in toolbox in c#
After you finish creating a custom control, you need to rebuild your project. Next open your form designer, on the side of the Visual Studio Toolbox window you will see the custom control that you have created automatically added to the Visual Studio Toolbox.
C# Move image in picturebox with mouse
Dragging the CustomPictureBox control from the Visual Studio Toolbox to your winform, then add an image to the CustomPictureBox control.
Select the Size Mode is StretchImage.
Press F5 to run your application, then you can move image in PictureBox with mouse in c#.
VIDEO TUTORIAL