>創建一個可拖動的,無邊界的窗口
>在Windows形式中設計無邊界的形式提供時尚,現代的美學。 但是,這通常會帶來一個挑戰:如何在沒有通常的標題欄或邊界的情況下使表格可移動?本文提供了使用Windows API的解決方案。
關鍵是使用SendMessage
>和ReleaseCapture
>函數模擬單擊標題欄。 這些API調用有效地欺騙了窗口管理器,即使在沒有可見邊框的情況下,也可以觸發拖放操作。
<code class="language-csharp">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>
事件處理程序中,您可以通過單擊和拖動表單客戶端區域中的任何地方來拖動和重新定位無邊界的表單。 這提供了所需的功能,而不會損害乾淨,無邊界的設計。
以上是如何使無邊框窗體在 Windows 窗體中可移動?的詳細內容。更多資訊請關注PHP中文網其他相關文章!