2011-01-20 3 views
0

Я создаю программу, в которой пользователь вводит некоторые данные в форму открытия. на основе этого откроется другое окно. В общей сложности у меня есть 4 guis, которые работают на циклической основе. Вы можете перейти от одной формы к любой другой после нескольких кликов.Ссылки на открытые формы

без необходимости перезагрузки некоторых форм с нуля (как у некоторых есть много вопросов, которые должны быть запущены) и без Form1, Form2, form3.hide(), form4.show()

как могу ли я сделать это «правильно»: D

Благодаря

ответ

1

Вы можете использовать UserControls в одной форме, вместо того чтобы работать со многими формами. Активный контроль можно легко переключить, вызвав метод userControl1.BringToFront().

+0

+1 Просто хочет добавить, что вместо того, чтобы довести до передней панели есть или какой-либо контроль контейнера и, возможно, даже сама форма, а затем удалить предыдущий мастер UserControl из коллекции элементов управления и добавить новый друг это ... Немного чисто ... –

0

Если вы всегда показать их в том же порядке, вы можете использовать подход мастера, это также полезно, если в будущем вы будете добавлять новые формы в середине или в «ребрах», обычно приложение-мастер хранит где-то структуру со всеми соответствующими данными, разделяемыми всеми формами. Надеюсь это поможет.

0

Нет, на самом деле. Почему нет:

private static Form[] _forms = new Form[] { form1, form2, form3, form4 }; 
public static void ShowForm(Form form) { 
    foreach (Form f in _forms) { 
     if (f == form) 
      f.Show(); 
     else 
      f.Hide(); 
    } 
} 
Смежные вопросы