C#-窗体移动
#region 窗體移動API[DllImport("user32.dll")]public static extern bool ReleaseCapture();[DllImport("user32.dll")]public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int IParam);public const int WM_SYSCOMMAND = 0x0112;public const int SC_MOVE = 0xF010;public const int HTCAPTION = 0x0002;[DllImport("user32")]private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, IntPtr lParam);private const int WM_SETREDRAW = 0xB;#endregion//窗體拖拽(包含雙擊最大化,根據(jù)兩次點擊的point判斷是拖拽還是雙擊、坐標(biāo)保存在SetForm.Tag)textBox1.MouseDown += delegate{if (this.Tag != null && ((int[])this.Tag)[0] == Control.MousePosition.X && ((int[])this.Tag)[1] == Control.MousePosition.Y){if (this.WindowState != FormWindowState.Maximized){this.Opacity = 0;this.Tag = null;this.WindowState = FormWindowState.Maximized;}else{this.Tag = null;this.WindowState = FormWindowState.Normal;//InvalidateRect(IntPtr.Zero, IntPtr.Zero, true);}}else{this.Tag = new int[2] { Control.MousePosition.X, Control.MousePosition.Y };}//刷新桌面if (this.WindowState == FormWindowState.Normal){ReleaseCapture();SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);}};
總結(jié)
- 上一篇: C#-窗体鼠标穿透
- 下一篇: C#-获取页面源代码