4
我想製作一個動態的GUI,這意味着GUI將根據用戶在組合框上的選擇而改變。如何創建動態面板以顯示並隱藏在C#中的組合框中使用差異選擇?
例如,如果組合框由{英文,西班牙文,法文}組成,組合框底部的面板將根據選擇更改其描述語言。
要做到這一點,我相信我必須做一些像清晰面板然後重繪面板,但我不知道如何。
有人可以告訴我如何使Visual Studio 2005 C#的細節發生這種情況嗎?
預先感謝您。
我想製作一個動態的GUI,這意味着GUI將根據用戶在組合框上的選擇而改變。如何創建動態面板以顯示並隱藏在C#中的組合框中使用差異選擇?
例如,如果組合框由{英文,西班牙文,法文}組成,組合框底部的面板將根據選擇更改其描述語言。
要做到這一點,我相信我必須做一些像清晰面板然後重繪面板,但我不知道如何。
有人可以告訴我如何使Visual Studio 2005 C#的細節發生這種情況嗎?
預先感謝您。
我在這裏有這個確切的實現:http://nbug.codeplex.com/SourceControl/changeset/view/6081#107027它實現了一個IPanelLoader(ISubmitPanel爲我的情況)接口,並加載與組合框中相同名稱的任何面板。基本上下載源代碼並編譯它並查看「配置器」項目。有很多東西需要我來解釋,但已經有一個完整的例子。
在我的情況下,任何形式來實現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;
}
}
Ofcourse此代碼應在要載入另一種形式運行另一種形式進入。
編輯:源代碼是從NBug項目。
你的面板裏面有什麼? – 2011-04-15 15:36:53
我做了一個窗口窗體,其中包含一個有組合框的面板。在內部面板中,它有一個組合框,您可以從3種語言中進行選擇,在其下面還有另一個面板可以選擇,我想根據用戶選擇的語言更改面板。 – js0823 2011-04-15 20:59:08