用ShowDialog打开的表单在异常后关闭

时间:2018-09-28 11:15:18

标签: c# winforms exception dialogresult

我有一个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分配高于异常抛出时,窗体将在异常之后关闭。

反之亦然,表格未关闭。有人可以解释这种行为吗?

1 个答案:

答案 0 :(得分:-1)

设置DialogResult所示的Form的{​​{1}}时,它将关闭。在设置属性之前引发异常时,该属性将不会更改,因此不会关闭表单。

我已经测试过了,它关闭了表单,但是无法直接在属性中找到它的完成方式。