Форма, открытая с помощью ShowDialog, закрывается после исключения - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть FormA, из которого я открываю FormB примерно так:

FormB B = new FormB();
FormB.ShowDialog();

В FormB у меня есть некоторый код в блоке try catch, и когда он выдает исключение, FormB закрыто.

private void func()
{
  try
  {
     // some code
     DialogResult = DialogResult.Ok;
     throw new Exception("Test exception")
  } 
  catch (Exception ex)
  {
    MessageBox.Show(ex.Message);
  }
}

Взгляните на эти две строки кода.Когда значение DialogResult превышает значение throw для исключения, форма закрывается после исключения.

И наоборот, форма не закрывается.Так может кто-нибудь объяснить это поведение?

1 Ответ

0 голосов
/ 28 сентября 2018

При установке DialogResult для Form, который отображается с помощью ShowDialog(), оно будет закрыто.Когда вы вызываете исключение перед установкой свойства, свойство не будет изменено, поэтому оно не закроет форму.

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

...