C#窗體屬性FormBordeStyle設定為none後,通過程式碼實現窗體滑鼠拖動功能
備註:使用的是visual studio2013版本
1、新建C#窗體應用程式,初始化的程式預設FormBordeStyle屬性為Sizable,修改屬性FormBordeStyle為none
(1)修改前
(2)修改後
2、F5除錯程式後,此時窗體沒有邊框、關閉縮小按鈕,無法通過滑鼠拖動窗體
3、雙擊Form1窗體,跳轉到後臺程式碼,新增一個重寫(override)的函式WndProc(ref Message id)
/// <summary> /// 設定FormBorderStyle:FixedDialog後窗體無法移動,重新實現移動窗體程式碼 /// </summary> private const int wmParameter = 0x84; private const int paramOne = 0x1; private const int paramTwo = 0x2; protected override void WndProc(ref Message id) { // 引用訊息ID(ref Message ID) switch (id.Msg) { case wmParameter: base.WndProc(ref id); if ((int)id.Result == paramOne) id.Result = (IntPtr)paramTwo; return; } base.WndProc(ref id); }
4、修改程式碼之後,F5除錯,此時介面如下(窗體已經被我用滑鼠移動)
5、總結:設定窗體FormBordeStyle為none之後,可以新增panel,進行自定義窗體介面,實現良好的使用者視覺效果。更多技巧,敬請期待。