2012-11-27 39 views
9

我正在C#中使用Windows窗體創建應用程序,我想完全替換Windows窗體中的所有內容並將其替換爲其他內容。有沒有方便的方法來做到這一點?在窗體中更改內容

例如:我有一個菜單,當我點擊「開始」時,我希望菜單消失並開始遊戲。我沒有使用XNA或其他類似於整個項目的觀點。

+0

一看便知這個問題:http://stackoverflow.com/questions/297526/what-is-the-best-way-to-clear-all-controls-on-a-form -c – 03Usr

+0

請參閱[這個答案](http://stackoverflow.com/questions/6953487/remove-hide -tab-headerswitcher-of-c-sharp-tabcontrol/6954785#6954785)它使用了一個修改後的選項卡控件。 – Lii

回答

7

對於您要切換的每個獨特內容集,使用一個Panel。隱藏除最初一個之外的所有面板。創建一個變量activePanel。將activePanel設置爲當前顯示的面板(即,最初的一個)。

當你需要切換,做到以下幾點:

activePanel.Visible = false; 
activePanel = <Panel you want to open now>; //I mean the Control, not an ID or something. 
activePanel.Visible = true; 

另一種方法是動態地刪除和添加控件到窗體,但這樣一來,你就必須寫很多更多的代碼,hovewer,你的應用程序內存佔用應該更小。

+0

謝謝,這應該工作。 – Jacco

4

這個工作對我來說:將所有的控制,如:

form.Controls.AddRange(Pages.ToArray()); 

然後激活需要一個與

form.Controls[i].BringToFront();