2016-12-29 32 views
-1

这是代码的快照我的ShowDialog不堵父窗体

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

我希望它运行SomeMethod()只有当登录表单被关闭,但是这似乎并不如此。

我在登录表单中有一个按钮,但每当按钮被点击时,它只是存在表格并执行SomeMethod()。我没有在登录表单中的任何地方拨打this.Close(),所以我不知道为什么会发生这种情况。

+1

不知道是什么问题。您显示的代码将在表单关闭后执行,这是预期的行为。如果问题是单击按钮时表单关闭的原因,则很可能按钮具有['DialogResult'](https://msdn.microsoft.com/en-us/library/system.windows.forms.button .dialogresult(v = vs.110).aspx)属性集。 –

回答

1

当您打开一个表格使用ShowDialog()时,只要找到DialogResult(最有可能一些登录按钮具有DialogResult属性设置),它就会退出。

Login form = new Login(); 

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

    } 

如果你想鸵鸟政策的形式关闭,然后打开与Show()方法,做任何你需要登录表单中:如果你想的someMethod()只在某些情况下,你必须来管理,然后执行。

+0

会用show方法冻结父窗体吗?因为这很重要。 – Kash

+0

Show()方法不会冻结你的父表单 – NicoRiff

+0

如果你希望SomeMethod只在某个按钮被预先登录时运行,那么你必须将特定的DialogResult对准关闭按钮然后用它做点什么 – NicoRiff

相关问题