Форма не загружается после DialogBox - PullRequest
0 голосов
/ 17 марта 2012

У меня есть диалоговая форма:

_myLogin = new LoginPage(_myDriver);
_myLogin.ShowDialog();

и затем я хочу загрузить другую форму

new RegularUser().Show();

Почему не загружается вторая форма?

Ответы [ 3 ]

1 голос
/ 17 марта 2012

Или вы можете просто вызвать новый RegularUser (). Show ();в методе загрузки формы LoginPage.

0 голосов
/ 17 марта 2012

Я полагаю, что вторая форма не загружается, потому что вы не закрыли первую модальную диалоговую форму.

ShowDialog() отображает модальное диалоговое окно

MSDN, Form.ShowDialogМетод :

Когда этот метод вызывается, код, следующий за ним, не выполняется до тех пор, пока диалоговое окно не будет закрыто.

Попробуйте использовать Вместо этого используйте метод Show () , поэтому будет отображаться окно и весь код после вызова Show() будет также выполнен.

PS: Учитывая имена форм, может быть модальнымдиалог является правильным решением для LoginForm?Поэтому пользователь видит LoginForm, вводит учетные данные, и только после того, как успешная авторизация сможет получить доступ к форме RegularUser, я не уверен в этом, поскольку просто предполагаю наличие только имен форм, но в любом случае модальные диалоги предназначены именно для таких случаев.

0 голосов
/ 17 марта 2012

Поскольку ваша первая форма отображается как Модальный диалог , который должен быть закрыт или скрыт, прежде чем пользователь сможет продолжить работу с остальной частью приложения, например MessageBox.

Вместо этого вы можете использовать:

_myLogin.Show();

для отображения в немодальной форме.

Из ссылки:

Если форма отображается как модальная, код, следующий за методом ShowDialog, не выполняется, пока диалоговое окно не будет закрыто. Однако когда форма отображается как немодальная, код, следующий за методом Show, выполняется сразу же после отображения формы.

...