剛剛接觸上位機(jī)的開(kāi)發(fā),單純是為了玩一下,淺度學(xué)習(xí)。
對(duì)大部分初學(xué)者來(lái)說(shuō),做上位機(jī)最基本的需求是串口收發(fā)、數(shù)據(jù)顯示和波形圖,要實(shí)現(xiàn)這幾個(gè)功能其實(shí)都不難,但是如果把這幾個(gè)模塊放到同一個(gè)窗體就會(huì)顯得很亂。為了更美觀,我想要把這幾個(gè)模塊放在不同的窗口,通過(guò)按鍵切換頁(yè)面,于是就有了這篇博客。
一、新建項(xiàng)目
第1步:創(chuàng)建一個(gè)Window窗體應(yīng)用(.NET Framework)
我用的是vs2019版本,其他版本也是一樣的。
第2步:配置項(xiàng)目
提示:框架要選.NET Framework 4以上,如果沒(méi)有,先確認(rèn)項(xiàng)目選的是不是Window窗體應(yīng)用,再確認(rèn)是否安裝NET Framework。項(xiàng)目名稱可以隨便起,項(xiàng)目保存路徑可以根據(jù)自己的情況選擇。
第3步:新建窗體
在自己的項(xiàng)目下新增用戶控件窗體。
新建多少個(gè)看自己的需求。
二、添加控件
選一個(gè)窗體作為主窗體,添加GroupBox控件和Button控件,調(diào)整好大小和布局。
提示:GroupBox是后面要作為切換的窗口,Button控件用于觸發(fā)切換事件。
我這里用默認(rèn)的Form1作為主窗體,加上新建的窗體一共是4個(gè)窗體,添加3個(gè)按鍵用來(lái)切換新建的3個(gè)窗體。要切換的幾個(gè)窗體尺寸建議和GroupBox控件的窗口保持一致。
在另外幾個(gè)窗體加入自己需要的控件。
我在主窗體以外的幾個(gè)窗體隨便添加一些控件用來(lái)區(qū)分窗體,不然看不出切換的效果。
三、編寫代碼
主窗體雙擊沒(méi)有放置控件的空白區(qū)域,會(huì)自動(dòng)生成窗體默認(rèn)加載函數(shù),在這個(gè)函數(shù)里面加入下面的代碼。
示例代碼:
w1 = new UserControl1();
w2 = new UserControl2();
w3 = new UserControl3();
w1.Show();
groupBox1.Controls.Clear();
groupBox1.Controls.Add(w1);
在函數(shù)外加入定義:
public static UserControl1 w1;
public static UserControl2 w2;
public static UserControl3 w3;
雙擊按鍵控件,自動(dòng)生成按鍵觸發(fā)事件函數(shù),分別在3個(gè)按鍵的函數(shù)里面添加以下代碼。
按鍵1示例代碼:
w1.Show();
groupBox1.Controls.Clear();
groupBox1.Controls.Add(w1);
按鍵2示例代碼:
w2.Show();
groupBox1.Controls.Clear();
groupBox1.Controls.Add(w2);
按鍵3示例代碼:
w3.Show();
groupBox1.Controls.Clear();
groupBox1.Controls.Add(w3);
四、運(yùn)行代碼
啟動(dòng)的時(shí)候加載第1個(gè)窗體。
通過(guò)按鍵切換窗體。
五、結(jié)束語(yǔ)
好了,關(guān)于多個(gè)窗體切換的介紹就到這里了,有什么問(wèn)題歡迎在評(píng)論區(qū)留言。
源碼下載:https://download.csdn.net/download/ShenZhen_zixian/21840758