2011-10-31 19 views
2

美好的一天stackoverflow。我的問題在於,關閉窗體函數在窗體關閉後沒有執行。但是,如果我關閉窗體並再次打開並再次關閉,則Close_Form函數將執行。我怎麼能這樣做,編譯並運行程序後,我可以立即使用關閉表單方法?請help.tnxFormClosing在c#

private Form2 ins = new Form2(); 

private void userManageLink_Click(object sender, EventArgs e) 
    { 


     ins.ShowDialog(); 

     ins.FormClosing += new System.Windows.Forms.FormClosingEventHandler(Close_Form); 

    } 

    private void Close_Form(object sender, EventArgs e) 
    { 

     MessageBox.Show("Hello World"); 

    } 

回答

6

移動的事件處理程序,以分配之前調用ShowDialog的()。一旦你調用ShowDialog(),它不會返回,直到表單已經關閉。當時,安裝事件處理程序沒有意義,因爲表單已經關閉,事件不會被觸發。

+1

織補這些緩慢的手指! :) – groundh0g

+0

謝謝man.hehe – wawaragna

+0

此外,您可能不希望爲每次點擊分配事件處理程序,您將開始獲取多次調用的代理 – Matt

1

問題很可能是您在ShowDialog調用後添加FormClosing處理程序。顯示對話框,關閉它,然後添加處理程序。嘗試在ShowDialog調用之前添加處理程序。

相關問題