在winform中,點擊頁面中的按鈕跳轉到指定的頁面中的操作非常的簡單,但是我們也知道,在大多數的軟件中,每個部分的頭部和尾巴都是相同的,如果每個頁面都要重做的話,將會非常的浪費時間,並且還不一定能夠保證能夠做到位置完全一樣,這樣就會用到我們的panel面板控件。首先在我們的首頁拖三個panel,給他們分別命名為panel_top,panel_Dock,panel_Bottom,這里的意思是頭部,中部和尾部的意思哦,為了方便我們去記憶,位置的話可以找到屬性中的Dock進行選擇填充。這里用三個按鈕分別對應三個頁面來顯示。如下圖:
對應的頁面命名跟按鈕顯示的文字相同哦,按鈕的名字我是用btn_加上單詞大寫的縮寫,希望不要看懵了。
新建一個窗體叫Main_Panel,這是一個總的面板,在這個窗體上拖三個panel,一個頭部,中部和尾部,命名按照上面的格式來書寫。在top和bottom寫入自己所需要的東西,最重要的就是中間的面板了。
做好這些以后新建一個窗體叫About_Worldskills,在這個窗體中放入想要顯示的內容,我的里面又是三個按鈕,看到這里是不是有點被繞暈了,如下圖所示
第一個按鈕跳轉的頁面做好之后,我們現在就要開始寫重點咯,首先,創建一個類文件,把它封裝起來,這里給他命名為SetPanel.cs
在這里寫一個方法叫ShowWindows,里面有兩個參數,string WindowsName是你想要顯示窗口的名字,Panel就是你想要顯示在哪個面板上的名字,這里的話,是固定的面板,之前說了建立一個窗體叫Main_Panel,里面分三個面板,所有的頭部和尾部相同,所以只要點擊按鈕,換掉中間的面板即可,所以這里顯示的Panel就是中間的面板名字: panel_Dock,這個在之后會提到,我們先看到這句:panel.Controls.Clear();//清空中間面板上的內容,每次進來都會清空一次;使用switch循環,循環這里就不多說了,這里比較的是窗體的名字,所以把窗體的名字傳過來之后進入到case中,跳轉到對應的頁面中,以第一個case為例,首先實例化,也就是new一下就行了,如果有紅色波浪線,重構一下using,aw.TopLevel=false;//只有把aw的窗口false掉,才能在panel中存活下來(反正寫上去就對了),aw.FormBorderStyle=FormBorderStyle.None;//把窗體的標題全部隱藏掉,因為我們是把一個新的窗體放在面板上,窗體會有標題欄啊最大化最小化之類的,統統隱藏掉,panel.Controls.Add(aw);//把aw這個窗體添加在面板上;這個類就寫完了,我們再回到頁面上,先到主頁面的button的點擊事件里。
(new Main_Panel(About Worldskills)).Show();//顯示Main_Panel這個窗體,其實就是"Main_Panel mp=new Main_Panel();mp.show();"的一個縮寫,為了偷懶,當然也更加的簡便啦。然后把主界面隱藏掉,因為是主窗口,是不能直接關閉的哦,關閉會導致整個程序的退出。為什么要隱藏呢?當我們打開軟件,點擊下一步的時候自然是不希望之前的窗體還顯示着,所以要把它隱藏掉哦!
在這里要先定義一個私有名,把按鈕傳過來的值賦給它,
在load事件中,把名字寫上去,用上剛才寫的方法就可以啦!
同樣的需要把方法拿過來,填上參數,還記得之前講的兩個參數分別是什么意思嗎?不記得再回去看看哦,這樣就實現了我們想要的效果,因為我也是小白的一部分,剛開始學習,寫的不好的地方可以給我留言,或者有更好的建議也可以哦!寫的比較詳細,這樣初學者應該也能看明白!希望可以幫到你們!