我想制作一个动态的 GUI,这意味着 GUI 将根据用户在组合框中所做的选择而改变。
例如,如果组合框由 {English, Spanish, French} 组成,则组合框底部的面板将根据选择更改其描述语言。
要做到这一点,我相信我必须做一些事情,比如清除面板然后重绘面板,但我不知道怎么做。
有人可以告诉我如何在 Visual Studio 2005 C# 上详细实现这一点吗?
先感谢您。
我想制作一个动态的 GUI,这意味着 GUI 将根据用户在组合框中所做的选择而改变。
例如,如果组合框由 {English, Spanish, French} 组成,则组合框底部的面板将根据选择更改其描述语言。
要做到这一点,我相信我必须做一些事情,比如清除面板然后重绘面板,但我不知道怎么做。
有人可以告诉我如何在 Visual Studio 2005 C# 上详细实现这一点吗?
先感谢您。
我在这里有这个确切的实现:http: //nbug.codeplex.com/SourceControl/changeset/view/6081#107027,它实现了一个IPanelLoader(我的例子是ISubmitPanel)接口并加载任何具有相同名称的面板在一个组合框。基本上下载源代码并编译它并查看“Configurator”项目。有很多事情需要我花几页纸来解释,但已经有一个完整的例子。
在我的例子中,任何实现ISubmitPanel
接口的表单(在我的例子中是 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;
}
}
当然,这段代码应该以另一种形式运行,您希望将另一种形式加载到其中。
编辑:源代码来自NBug项目。