创建可移动的无边框窗体
能否创建一个无边框窗体,但仍可以通过点击窗体本身来移动它,就像有边框的窗体一样?
答案:
可以。CodeProject 提供了一种详细的技术:
其核心解决方案包括:
<code class="language-c#">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); } }</code>
此方法通过向窗口管理器发送消息来模拟抓取窗口标题栏的行为。它模拟了在标题栏区域的左键单击,从而触发与带边框窗体相同的移动机制。
以上是可以通过单击它们使无边界表格可移动吗?的详细内容。更多信息请关注PHP中文网其他相关文章!