2012-11-27 36 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();