91网首页-91网页版-91网在线观看-91网站免费观看-91网站永久视频-91网站在线播放

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C#自定義Winform無邊框窗體

admin
2021年1月30日 12:8 本文熱度 3893

在實際項目中,WinForm窗體或者控件不能滿足要求,所以就需要自己設(shè)計窗體等,當(dāng)然設(shè)計界面可以用的東西很多,例如WPF、或者一些第三方的庫等。本例中將采用WinForm設(shè)計一個扁平美觀的窗體。

上一篇中我們制作了一個button按鈕控件,剛好本例可采用    

需要的可以參考:C#自定義Button按鈕控件

窗體效果:


接下來就是窗體的設(shè)計

1.添加一個窗體繼承原來的窗體Form

1 public partial class FormEX : Form

2.添加窗體屬性

1 /// <summary> 2 /// 是否允許最大化 3 /// </summary> 4 private bool maxVisible = true; 5 [Description("是否允許最大化")] 6 public bool MaxVisible 7 { 8 get { return maxVisible; } 9 set 10 { 11 maxVisible = value; 12 if (!maxVisible) 13 { 14 this.btnEXMin.Location = new System.Drawing.Point(this.btnEXMax.Location.X, 12); 15 this.btnEXMax.Visible = false; 16 } 17 else 18 { 19 this.btnEXMin.Location = new System.Drawing.Point(this.btnEXMax.Location.X - 20, 12); 20 this.btnEXMax.Visible = true; 21 } 22 } 23 } 24 25 26 /// <summary> 27 /// 窗體標(biāo)題 28 /// </summary> 29 private string titleText; 30 [Description("窗體標(biāo)題")] 31 public string TitleText 32 { 33 get { return titleText; } 34 set 35 { 36 titleText = value; 37 title.Text = titleText; 38 39 } 40 } 41 /// <summary> 42 /// 窗體標(biāo)題是否顯示 43 /// </summary> 44 private bool titleVisible = true; 45 [Description("窗體標(biāo)題是否顯示")] 46 public bool TitleVisible 47 { 48 get { return titleVisible; } 49 set 50 { 51 titleVisible = value; 52 title.Visible = titleVisible; 53 } 54 } 55 56 /// <summary> 57 /// 窗口默認(rèn)大小 58 /// FormSize.NORMAL OR FormSize.MAX 59 /// </summary> 60 private FormSize defaultFormSize = FormSize.NORMAL; 61 [Description("窗口默認(rèn)大小")] 62 public FormSize DefaultFormSize 63 { 64 get { return defaultFormSize; } 65 set 66 { 67 defaultFormSize = value; 68 if (defaultFormSize == FormSize.MAX) 69 { 70 //防止遮擋任務(wù)欄 71 this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height); 72 this.WindowState = FormWindowState.Maximized; 73 //最大化圖標(biāo)切換 74 this.btnEXMax.ImageDefault = global::BenNHControl.Properties.Resources.MaxNormal; 75 } 76 } 77 }

3.窗體大小自由更改

1 const int WM_NCHITTEST = 0x0084; 2 const int HTLEFT = 10; //左邊界 3 const int HTRIGHT = 11; //右邊界 4 const int HTTOP = 12; //上邊界 5 const int HTTOPLEFT = 13; //左上角 6 const int HTTOPRIGHT = 14; //右上角 7 const int HTBOTTOM = 15; //下邊界 8 const int HTBOTTOMLEFT = 0x10; //左下角 9 const int HTBOTTOMRIGHT = 17; //右下角

protected override void WndProc(ref Message m) { switch (m.Msg) { case WM_NCHITTEST: base.WndProc(ref m); Point vPoint = new Point((int)m.LParam & 0xFFFF, (int)m.LParam >> 16 & 0xFFFF); vPoint = PointToClient(vPoint); if (vPoint.X <= 5) if (vPoint.Y <= 5) m.Result = (IntPtr)HTTOPLEFT; else if (vPoint.Y >= ClientSize.Height - 5) m.Result = (IntPtr)HTBOTTOMLEFT; else m.Result = (IntPtr)HTLEFT; else if (vPoint.X >= ClientSize.Width - 5) if (vPoint.Y <= 5) m.Result = (IntPtr)HTTOPRIGHT; else if (vPoint.Y >= ClientSize.Height - 5) m.Result = (IntPtr)HTBOTTOMRIGHT; else m.Result = (IntPtr)HTRIGHT; else if (vPoint.Y <= 5) m.Result = (IntPtr)HTTOP; else if (vPoint.Y >= ClientSize.Height - 5) m.Result = (IntPtr)HTBOTTOM; break; default: base.WndProc(ref m); break; } }

4.窗體按鈕等事件添加

1 /// <summary> 2 /// 最小化按鈕事件 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 private void btnEXMin_ButtonClick(object sender, EventArgs e) 7 { 8 this.WindowState = FormWindowState.Minimized; 9 } 10 11 /// <summary> 12 /// 最大化按鈕事件 13 /// </summary> 14 /// <param name="sender"></param> 15 /// <param name="e"></param> 16 private void btnEXMax_ButtonClick(object sender, EventArgs e) 17 { 18 this.MaxNormalSwitch(); 19 } 20 21 /// <summary> 22 /// 關(guān)閉按鈕事件 23 /// </summary> 24 /// <param name="sender"></param> 25 /// <param name="e"></param> 26 private void btnEXClose_ButtonClick(object sender, EventArgs e) 27 { 28 this.Close(); 29 } 30 31 /// <summary> 32 /// 鼠標(biāo)按下標(biāo)題欄 33 /// </summary> 34 /// <param name="sender"></param> 35 /// <param name="e"></param> 36 private void titleBar_MouseDown(object sender, MouseEventArgs e) 37 { 38 mPoint = new Point(e.X, e.Y); 39 } 40 41 /// <summary> 42 /// 鼠標(biāo)在移動 43 /// </summary> 44 /// <param name="sender"></param> 45 /// <param name="e"></param> 46 private void titleBar_MouseMove(object sender, MouseEventArgs e) 47 { 48 if (e.Button == MouseButtons.Left) 49 { 50 this.Location = new Point(this.Location.X + e.X - mPoint.X, this.Location.Y + e.Y - mPoint.Y); 51 } 52 } 53 54 private void titleBar_DoubleClick(object sender, EventArgs e) 55 { 56 this.MaxNormalSwitch(); 57 } 58 59 60 /// <summary> 61 /// 最大化和正常狀態(tài)切換 62 /// </summary> 63 private void MaxNormalSwitch() 64 { 65 if (this.WindowState == FormWindowState.Maximized)//如果當(dāng)前狀態(tài)是最大化狀態(tài) 則窗體需要恢復(fù)默認(rèn)大小 66 { 67 this.WindowState = FormWindowState.Normal; 68 // 69 this.btnEXMax.ImageDefault = global::BenNHControl.Properties.Resources.Max; 70 } 71 else 72 { 73 //防止遮擋任務(wù)欄 74 this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height); 75 this.WindowState = FormWindowState.Maximized; 76 //最大化圖標(biāo)切換 77 this.btnEXMax.ImageDefault = global::BenNHControl.Properties.Resources.MaxNormal; 78 } 79 this.Invalidate();//使重繪 80 } 81 82 private void FormEX_Resize(object sender, EventArgs e) 83 { 84 this.Invalidate();//使重繪 85 }

窗體效果展示

工程源程序下載 


該文章在 2021/1/30 12:08:18 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 日韩在线中文字幕 | 91色国产 | 91精品国产手机在 | 日韩欧美国产高清 | www.日本色 | 中文字幕久热精品 | 日本大片电影 | 另类图片五月天综合 | 国产最新不卡 | 精品国产精品国在线 | 午夜福利电影网 | 日本护士 | 国产传媒在线 | 国产呦va在线观看 | 日韩一区二区www | 国产操女 | 成人午夜爱看 | 午夜日韩欧美一级 | 国产欧美一二三区 | 欧美日韩综合另类 | 国产精品三级三级 | 日本特级片 | 九九视频免费看 | 成人一区免费观看 | 国产在在线免 | 日韩男女性爱视频 | 亚洲无码aⅴ中文字幕 | 蜜臀tv | 国产久免费在线观看 | 福利在线不卡一区 | 妹子干综合 | 精品国产高清自 | 91福利在线观看 | 日本电影在线观看黄 | 日韩熟女精品影院 | 日韩欧美国产 | 岛国精品资源 | 午夜福利精品 | 国产91精品福利 | 日本精品视频 | 国产一区国产二 |