Какой лучший способ переключения между формами в C #? - PullRequest
0 голосов
/ 12 апреля 2009

Какой лучший способ переключения между формами в C #?

Сценарий: я хочу нажать кнопку в форме Form1, убить существующую форму Form1 и создать форму Form2. Как мне этого добиться?

Я был бы очень признателен, если бы кто-нибудь даже мог сравнить сложность этой задачи в Winforms против WPF.

Ответы [ 2 ]

4 голосов
/ 12 апреля 2009

Самый простой способ сделать это - иметь контролирующую функцию, которая открывает обе формы. Когда кнопка нажата в первой форме, закройте ее и перейдите во вторую форму.

using (var form1 = new Form1() ) {
  form1.ShowDialog();
}
using (var form2 = new Form2()) {
  form2.ShowDialog();
}

Код для WPF аналогичен. Самое большое отличие состоит в том, что окна WPF (и, как правило, почти все классы) не реализуют IDisposable и, следовательно, не требуют оператора using.

var win1 = new Window1();
win1.ShowDialog();
var win2 = new Window2();
win2.ShowDialog();
1 голос
/ 12 апреля 2009

Конечно, это очень простой вопрос: закрыть текущую форму, создать экземпляр новой и показать ее? Следующий код (под обработчиком события Click в вашем случае) должен работать в WinForms или WPF.

this.Close();
(new Form2()).Show();

Возможно, я что-то здесь упускаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...