動的な GUI を作成したいと考えています。つまり、コンボ ボックスでのユーザーの選択に応じて GUI が変化します。
たとえば、コンボ ボックスが {英語、スペイン語、フランス語} で構成されている場合、コンボ ボックスの下部にあるパネルは、選択内容に応じて説明言語が変わります。
これを行うには、パネルをクリアしてからパネルを再描画する必要があると思いますが、方法がわかりません。
Visual Studio 2005 C# でこれを詳細に行う方法を教えてもらえますか?
前もって感謝します。
動的な GUI を作成したいと考えています。つまり、コンボ ボックスでのユーザーの選択に応じて GUI が変化します。
たとえば、コンボ ボックスが {英語、スペイン語、フランス語} で構成されている場合、コンボ ボックスの下部にあるパネルは、選択内容に応じて説明言語が変わります。
これを行うには、パネルをクリアしてからパネルを再描画する必要があると思いますが、方法がわかりません。
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プロジェクトからのものです。