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