C# Winform无边框移动窗体
鼠标点击某个控件时的移动
#region 鼠标拖动 [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImport("user32.dll")] public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam); public const int WM_SYSCOMMAND = 0x0112; public const int SC_MOVE = 0xF010; public const int HTCAPTION = 0x0002; private void panel1_MouseDown(object sender, MouseEventArgs e) { ReleaseCapture(); SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0); } #endregion
未指定控件
#region 移动窗体 [DllImport("user32.dll")] public static extern bool Rese(); protected override void WndProc(ref Message m) { switch (m.Msg) { case 0x84: base.WndProc(ref m); if (m.Result == (IntPtr)0x1) { m.Result = (IntPtr)2; return; } break; } base.WndProc(ref m); } #endregion