公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

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

C#自定義Winform無邊框窗體

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

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

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

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

窗體效果:


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

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

主站蜘蛛池模板: 精品动漫一区二区无码视频 | 国产精品白浆在线观看无码专区 | 国产精品亚洲精品青青青 | 国产福利小视频在线播放 | 国产成人毛片在线视频软件 | 成人影片在线播放 | 国产一区在线观看视频网站 | 国产精品无码视频影院 | 国产综合无码三级 | 国产成人激情视频 | 91天堂一区二区三区在线 | 国产高清精品福利私拍国产 | 国产日韩久久久久69影院 | 国产毛片一区二区 | 国产激情一区二区三区成人91 | 国产成人精品手机在线观看 | 国产精品毛片无码一区二区蜜 | 国产在线精品亚洲第一区香蕉 | 精品无码成人网站久久久久久 | 成人片在线观看地址kk4444 | 国产狂喷潮视频免费观看 | 国产成人精品综合久久久久 | av无码午夜福利一区二区三区 | 国产成人片视频一区二区 | 成人在线91 | 国产成人av在线 | 东京热无码中文人妻 | 国产高清综合中文 | 囯产免费久久久久久国产免费 | 国产成人精品久久免费动漫 | 91在线播放 | 国产福利无码 | 91精品综合国产在线观看 | 国产精品日日摸夜夜添夜夜添无 | 国产成年无码aⅴ片在线观看 | 国产精品成人啪精品视频免费观看 | 国产一区二区午夜福利在线观看 | 精品偷自拍另类在线观 | 国产a国产| 国产av无码专区亚洲av果冻传媒 | 国产福利95精品一区二区三区 |