2015-12-07 84 views
1

我使用C#.Net開發了一個應用程序,該應用程序使用多種形式和按鈕打開這些窗體。我需要的是點擊一個按鈕,打開一個包含myDataTable中數據的表單,用戶進行更改,最後在表單關閉parentFrom doSomethingWith myDataTable之後進行更改。問題是程序首先運行doSomethingWith,然後顯示窗體。我可以從childForm調用doSomethingWith,但是childForm會從幾個父表單中調用幾次,這樣不方便。有沒有辦法保持這個序列?單擊按鈕,打開窗體,關閉窗體,然後在父窗體中執行某些操作

private void bt_ImportFile_Click(object sender, EventArgs e) 
{ 
    System.Data.DataTable myDatatable = new System.Data.DataTable(); 
    importForm = new Form_ImportExcel(ref myDatatable); 
    importForm.Show(); 
    doSomethingWith(myDataTable); 
} 
+0

聽起來好像你只需要從你的子表單中廣播一個事件,並通過父表單正在監聽的事件參數發回數據。 –

+1

你可以在Form_Closing上調用它。 – Mairaj

+0

如果你想在表單關閉後執行'doSomethingWith',你應該調用'ShowDialog'。否則它不會等待表單關閉。 – bansi

回答

0

您可以改爲調用importForm.ShowDialog()。這將阻止doSomethingWith(myDataTable)的執行,直到importForm被關閉。

如果窗體顯示爲模態,則在關閉對話框之前,不會執行ShowDialog方法後面的代碼。但是,當窗體顯示爲無模式時,顯示窗體後立即執行Show方法後面的代碼。有關更多詳細信息,請參閱MSDN

+0

就是這樣!非常感謝你! – Charitini

相關問題