C#运行时鼠标移动控件 - 调用Windows API(ReleaseCapture)
[System.Runtime.InteropServices.DllImport("user32.dll")] public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam); [System.Runtime.InteropServices.DllImport("user32.dll")] public static extern bool ReleaseCapture(); private void MoveControl(Control sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left && e.Clicks == 1) { ReleaseCapture(); SendMessage(sender.Handle, 161, 2, 0); SendMessage(sender.Handle, 0x0202, 0, 0); } else { //添加双击或右击代码…… } } private void button3_MouseDown(object sender, MouseEventArgs e) { MoveControl(sender as Control, e); }