c#winform自定义窗体(含源码)
生活随笔
收集整理的這篇文章主要介紹了
c#winform自定义窗体(含源码)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第一步:首先引用DLL
再窗體中繼承DevComponents.DotNetBar.OfficeForm
初始化程序中添加 this.EnableGlass = false;
第二步:重繪標題欄
this.FormBorderStyle = FormBorderStyle.None;
先將原生窗體設置成無邊框,FormBoderStyle設置成None
然后添加一個panpel控件設置成窗體的的標題欄,并將panel的dock屬性設置為Top;
然后添加四個labell控件充當標題和最小化最大化關閉按鈕。
此時界面的原型就出來了。
第三步:最小最大關閉事件
注冊事件
this.panelEx1.MouseDown += panel1_MouseDown;this.MouseDown += MainForm_MouseDown;為事件添加處理方法
第四步:窗體拖動
[DllImport("user32.dll")]public static extern bool ReleaseCapture();[DllImport("user32.dll")]public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);private const int VM_NCLBUTTONDOWN = 0XA1;//定義鼠標左鍵按下private const int HTCAPTION = 2;private void MainForm_MouseDown(object sender, MouseEventArgs e){//為當前應用程序釋放鼠標捕獲ReleaseCapture();//發送消息 讓系統誤以為在標題欄上按下鼠標SendMessage((IntPtr)this.Handle, VM_NCLBUTTONDOWN, HTCAPTION, 0);}private void panel1_MouseDown(object sender, MouseEventArgs e){//為當前應用程序釋放鼠標捕獲ReleaseCapture();//發送消息 讓系統誤以為在標題欄上按下鼠標SendMessage((IntPtr)this.Handle, VM_NCLBUTTONDOWN, HTCAPTION, 0);}運行結果如下:
百度網盤下載鏈接:
鏈接:https://pan.baidu.com/s/1jI5bo3LxGM2HmJsouK8oMw
提取碼:c7ne
技術群:?需要進技術群學習交流的請添加小編微信,切記備注:加群,對U上內容有什么疑問也可以直接和小編直接溝通交流!? ???
小編微信:mm1552923 ??
公眾號:dotNet編程大全? ? ??
總結
以上是生活随笔為你收集整理的c#winform自定义窗体(含源码)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .NET+Sqlite如何支持加密
- 下一篇: 【.NET 遇上 GraphQL】使用