winform - 刷新初始时刷新另一个表单

时间:2017-01-19 01:05:57

标签: c# winforms

您好form1form2

private void form1_Load(object sender, EventArgs e)
{
//codes to display db
}

然后我使用form2.ShowDialog();打开表单,因为我不想要多个窗口

然后在我的form2中我必须删除一些东西,以便form1必须更新显示。

 private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
//codes to delete
  form2_Load(sender, e); //so the form2 will reload
}

首先我必须先打开form1才能打开form2。如何在form2中更新/刷新form1? 编辑:
我要在form1中刷新的唯一内容是dataGridView

2 个答案:

答案 0 :(得分:0)

实际上,直接从当前表单更新其他表单并不是一个好主意。当您的用户以当前和活动形式工作时,使用委托和回调设计中介可以更新其他表单。

答案 1 :(得分:-1)

此问题取决于 form2是否知道如何访问form1

如果是这样,您可以调用form1.Refresh()(或其他一些公共方法)来请求form1更新列表。 (原因是,您必须覆盖Refresh方法,或创建自己的公共方法。)

如果没有,也许您可​​以考虑使用Singleton pattern on your form1

-

此外,如果form2总是由form1创建,您可以考虑像这样打开form2(必须写在form1

Form2 form2 = new Form2();
form2.Open(this);
//-- or
form2.OpenDialog(this);

如果是这样,您可以致电form1访问form2中的this.Parent