private Point mouse_offset; private void label1_MouseDown( object sender, MouseEventArgs e) ... { mouse_offset = new Point(-e.X, -e.Y);// } private void label1_MouseMove( object sender, MouseEventArgs e) ... { ((Control)sender).Cursor = Cursors.Arrow;//设置拖动时鼠标箭头 if (e.Button == MouseButtons.Left) ...{ Point mousePos = Control.MousePosition; mousePos.Offset(mouse_offset.X, mouse_offset.Y);//设置偏移 ((Control)sender).Location = ((Control)sender).Parent.PointToClient(mousePos); } } 参考:http: // www.cnblogs.com/DS-CzY/archive/2007/06/30/801377.aspx