Как создать динамическую панель для отображения и скрытия, используя различные варианты в поле со списком в C#?
Я хочу создать графический интерфейс, который будет динамичным, то есть он будет меняться в зависимости от выбора, который пользователь делает в поле со списком.
Например, если поле со списком состоит из {английский, испанский, французский}, панель в нижней части окна со списком изменит язык описания в зависимости от выбора.
Я думаю, что для этого нужно сделать что-то вроде очистки панели, а затем перерисовать панель, но я понятия не имею, как это сделать.
Может кто-нибудь сказать мне, как сделать это подробно в Visual Studio 2005 C#?
Заранее спасибо.
1 ответ
У меня есть точная реализация прямо здесь: http://nbug.codeplex.com/SourceControl/changeset/view/6081 которая реализует интерфейс 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;
}
}
Конечно, этот код должен выполняться в другой форме, в которую вы хотите загрузить другую форму.
Изменить: Исходный код из проекта NBug.