有没有一种方法可以使没有边框(FormBorderStyle设置为“ none”)的窗体在鼠标上单击时就像出现边框一样移动?
该文章在CodeProject细节的技术。基本上可以归结为:
public const int WM_NCLBUTTONDOWN = 0xA1; public const int HT_CAPTION = 0x2; [System.Runtime.InteropServices.DllImport("user32.dll")] public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); [System.Runtime.InteropServices.DllImport("user32.dll")] public static extern bool ReleaseCapture(); private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { if (e.Button == MouseButtons.Left) { ReleaseCapture(); SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0); } }
从窗口管理器的角度来看,这基本上与抓取窗口的标题栏 完全相同 。