c#中拖动图片的例子 这个问题来自论坛提问,并没有什么难度,也不需要重画内容。当然还有一种方法是通过api发送WM_SysCommand 和SC_MOVE,也就是拖动无标题窗体的方法 ,但是效果没有这个好。 using System; using System.Drawing; using System.Windows.Forms; namespace WindowsApplication2 ... { public partial class Form1 : Form ... { static string strDown = @" AAACAAEAICAAAAsACQAwAQAAFgAAACgAAAAgAAAAQAAAAAEAAQAAAAAAAAIAAAAA AAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAf4AAAD8AAAA/AAAAPwAAAH+AAAD/gAAB/8AAA//AAAN/wAACf+AAAH 9gAADbQAAA2wAAAJsAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA////////////////////////////////////////////8AP///gH///4 B///+Af///AD///gA///wAH//4AB//+AAf//gAD//4AA///AAP//4AH//+AH///g D////j////////////////////////////////////////////8= " ; static string strUp = @" AAACAAEAICAAAAoACAAwAQAAFgAAACgAAAAgAAAAQAAAAAEAAQAAAAAAAAIAAA AAAAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAf4AAAD8AAAA/AAAAPwAAAH+AAAD/gAAB/8AAA//AAAd/wAAGf+ AAAH9gAADbYAAA2yAAAZsAAAGbAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAA////////////////////////////////////////////8AP/// gH///4B///+Af///AD///gA///wAH//4AB//8AAf//AAD//4AA///gAP//4AD// 8AF///AB///5A////5///////////////////////////////////////8= " ; Cursor curUp = new Cursor( new System.IO.MemoryStream(Convert.FromBase64String(strUp))); Cursor curDown = new Cursor( new System.IO.MemoryStream(Convert.FromBase64String(strDown))); public Form1() ... { InitializeComponent(); this .pictureBox1.Cursor = curUp; } bool bDragging = false ; Point pClicked; private void pictureBox1_MouseDown( object sender, MouseEventArgs e) ... { bDragging = true ; pClicked = new Point(e.X, e.Y); this .pictureBox1.Cursor = curDown; } private void pictureBox1_MouseMove( object sender, MouseEventArgs e) ... { if (bDragging) ... { Point oMoveToPoint; oMoveToPoint = this .PointToClient(pictureBox1.PointToScreen( new Point(e.X, e.Y))); oMoveToPoint.Offset(pClicked.X * - 1 , pClicked.Y * - 1 ); pictureBox1.Location = oMoveToPoint; } } private void pictureBox1_MouseUp( object sender, MouseEventArgs e) ... { bDragging = false ; this .pictureBox1.Cursor = curUp; } } }