1. 程式人生 > >C#窗體屬性FormBordeStyle設定為none後,通過程式碼實現窗體滑鼠拖動功能

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,進行自定義窗體介面,實現良好的使用者視覺效果。更多技巧,敬請期待。