Form.Load事件在使用Form.Show时未引发,但在使用Form.ShowDialog时引发

时间:2017-01-24 16:58:42

标签: .net winforms .net-4.5.2

当我通过Form.Show()打开表单时,不会显示已打开表单的Show Event

但是当我使用Form.ShowDialog()时,会引发事件,并在我的Form_Shown方法中点击我的断点。

我看到this answer,异常隐藏了事件,但我没有例外。

那么,为什么在我致电ShowDialog()时会举起活动,但如果我致电Show()则不会?

这是link to a demo。当我单击ShowDialog()按钮时,我看到带有加载和显示事件的消息框,但对于Show(),我只看到加载事件。

1 个答案:

答案 0 :(得分:1)

using (var form = new Form2())
{
  form.Show();
}

由于Show不会阻止代码,因此Using块将立即处理您的表单。 ShowDialog将阻止代码,直到表单关闭,因此,该版本可以正常工作。