Windows窗体:等到另一个窗体关闭

时间:2017-02-02 00:09:24

标签: c# winforms

我遇到formA需要更新某些数据的情况,但只有在formB关闭后才能更新。有一个简单的方法吗?

private void newProjectButton_Click(object sender, EventArgs e)
{
    NewProjectForm newProjectForm = new NewProjectForm();
    newProjectForm.Show();

    //wait for newProjectForm to close...

    DataTable dt = Util.ToDataTable(ProjectParticipantTable.GetUserProjectsDetails(Util.currentUserId));
    userProjectsDGV.DataSource = dt;
}

2 个答案:

答案 0 :(得分:1)

您必须使用ShowDialog()方法,并管理DialogResult属性。为此,您必须在NewProjectForm的某些部分设置DialogResult设置,可以在按钮中设置属性,或者只是按代码设置。这将激活DialogResult到您的父窗体并关闭窗体

你可以这样做:

using(NewProjectForm newProjectForm = new NewProjectForm())
{
   if(newProjectForm.ShowDialog() == DialogResult.OK)
   {
       DataTable dt = Util.ToDataTable(ProjectParticipantTable.GetUserProjectsDetails(Util.currentUserId));
       userProjectsDGV.DataSource = dt;
   }
}

答案 1 :(得分:1)

如果您不想使用模态showdialog模式,您也可以使用此方法。

:%s/\(\<\)\@<!_DISCHRG_REASON_CODE\>//g

如果只想要一个单例,那么将newProjectForm变量设为静态单例。