Click here to Skip to main content
11,921,835 members (64,285 online)
Rate this:
Please Sign up or sign in to vote.
See more: C# Mouse
Hi, I am making a simple 2D map maker for games. Simply the user clicks on a button that will show a openfiledialog. The user chooses a file and is loaded in a PictureBox. Then if the user wants to add it to the game world(panel) he/she clicks on the add button and the panel will load the picture. What I am having trouble with is being able to drag and drop the image within that panel. I will appreciate your help.

windows 7   visual C#   winform

Posted 15-Feb-12 6:32am
Edited 15-Feb-12 12:42pm
Rate this: bad
Please Sign up or sign in to vote.

Solution 2


I think this can help:

private bool isPictureReadyToDrag;
private void SetPosition()
     MyPictureBox.Location = new Point(MousePosition.X - this.Left - MyPictureBox.Width / 2, MousePosition.Y - this.Top - MyPictureBox.Height);
private void MyPictureBox_MouseMove(object sender, MouseEventArgs e)
     if (isPictureReadyToDrag)
private void MyPictureBox_MouseUp(object sender, MouseEventArgs e)
     isPictureReadyToDrag = false;
private void MyPictureBox_MouseDown(object sender, MouseEventArgs e)
     isPictureReadyToDrag = true;
angelllll 15-Feb-12 18:18pm
Both of your solutions were helpful, Great examples from both of you.

Shahin Khorshidnia 15-Feb-12 18:36pm
Thank you.
khushwant sahota 15-Feb-12 20:09pm
any time...cheers

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 OriginalGriff 538
1 Dave Kreskowiak 260
2 Sergey Alexandrovich Kryukov 173
3 phil.o 170
4 RyanDev 134
0 OriginalGriff 7,036
1 KrunalRohit 4,530
2 Sergey Alexandrovich Kryukov 3,286
3 George Jonsson 2,840
4 Suvendu Shekhar Giri 2,216

Advertise | Privacy | Mobile
Web01 | 2.8.151120.1 | Last Updated 15 Feb 2012
Copyright © CodeProject, 1999-2015
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100