如何使用C#中的combobox中的差异选项创建要显示和隐藏的动态面板?

我想创建一个动态的GUI,这意味着GUI将根据用户在combobox上做出的选择而改变。

例如,如果combobox由{英语,西class牙语,法语}组成,则combobox底部的面板将根据选择更改其描述语言。

要做到这一点,我相信我必须做一些像清除面板然后重绘面板,但我不知道如何。

有人能告诉我如何在Visual Studio 2005 C#的细节上实现这一点吗?

先感谢您。

我在这里有这个确切的实现: http ://nbug.codeplex.com/SourceControl/changeset/view/6081#107027,它实现了一个IPanelLoader(我的案例是ISubmitPanel)接口,并加载任何一个与之相同的面板。combobox。 基本上下载源代码并编译它并查看“Configurator”项目。 有很多东西需要我解释,但已经有一个完整的例子。

在我的例子中,任何实现ISubmitPanel接口的forms(在我的情况下是MailForm,FtpForm等)都可以像这样加载:

 private void SubmitComboBox_SelectedIndexChanged(object sender, EventArgs e) { switch (this.submitComboBox.SelectedItem.ToString()) { case "E-Mail": this.Controls.Add(new MailForm()); break; case "FTP": this.Controls.Add(new FtpForm()); break; case "HTTP": this.Controls.Add(new HttpForm()); break; } } 

当然,此代码应以另一种forms运行,您希望将其他表单加载到其中。

下拉加载面板

已加载电子邮件面板

编辑:源代码来自NBug项目。