Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: C# Drag drop WinForm 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
 
thanks,
Posted 15-Feb-12 6:32am
Edited 15-Feb-12 12:42pm
v3
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 2

Hello,
 
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)
         SetPosition();
}
 
private void MyPictureBox_MouseUp(object sender, MouseEventArgs e)
{
     isPictureReadyToDrag = false;
}
 
private void MyPictureBox_MouseDown(object sender, MouseEventArgs e)
{
     isPictureReadyToDrag = true;
     SetPosition();
}
  Permalink  
Comments
angelllll at 15-Feb-12 18:18pm
   
Both of your solutions were helpful, Great examples from both of you.
 
Thanks,
Shahin Khorshidnia at 15-Feb-12 18:36pm
   
Thank you.
khushwant sahota at 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 8,149
1 Sergey Alexandrovich Kryukov 7,287
2 DamithSL 5,614
3 Manas Bhardwaj 4,986
4 Maciej Los 4,910


Advertise | Privacy | Mobile
Web01 | 2.8.1411023.1 | Last Updated 15 Feb 2012
Copyright © CodeProject, 1999-2014
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