2016-12-29 55 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

相關問題