2015-12-07 55 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

相关问题