在对话框关闭后执行代码并且它不可见

时间:2009-02-04 12:24:43

标签: c# winforms

我想在'Form1'中执行一些代码但是在对话框关闭后它不可见。我知道我可以在调用ShowDialog()之后在对话框外执行此操作,但我不喜欢它。

我在'FormClosed'中尝试过,但是当这个事件被触发时,它似乎仍然可见。此外,如果我将'Hide()'称为主要对话框,它会被最小化 - 这会发生一些有趣的事情

2 个答案:

答案 0 :(得分:3)

我会在对话框上创建一个静态方法,并在此方法中显示对话框,并执行关闭后执行的任何操作,例如。

public static void ShowAndDoStuff()
{
  MyDialog dialog = new MyDialog();
  dialog.ShowDialog();
  dialog.DoStuff();
}

答案 1 :(得分:1)

您可以尝试Closing Event,也可以使用hide方法。 我建议使用混合解决方案 只使用带有false默认值的布尔变量(即:sysclose), 在结束事件中,如果sysclose为false,则取消关闭并隐藏表单然后执行您的作业将sysclose设置为true并调用this.close