ShowDialog没有阻止父表单

时间:2016-12-29 13:33:42

标签: c# winforms visual-studio

这是我所拥有的代码的快照

  Login form = new Login();
  form.ShowDialog();
  SomeMethod();

我希望它仅在登录表单关闭时运行SomeMethod(),但似乎并非如此。

我在登录表单中有一个按钮,但只要单击该按钮,它就会存在表单并执行SomeMethod()。我没有在登录表单的任何地方拨打this.Close(),所以我不知道为什么会这样。

1 个答案:

答案 0 :(得分:1)

当您使用ShowDialog()打开表单时,只要找到DialogResult,它就会退出(很可能一些Login按钮设置了DialogResult属性)。如果你想在某些情况下执行SomeMethod(),那么你必须管理:

  Login form = new Login();

  if(form.ShowDialog() == DialogResult.OK)
  {
       SomeMethod();
  }
  else
  {

  }

如果您不希望表单关闭,请使用Show()方法打开并在登录表单中执行任何操作。