C# 打开两个表单并从form2在form1上运行方法

C# 打开两个表单并从form2在form1上运行方法,c#,winforms,C#,Winforms,我有一个用来管理数据库的程序。我的数据库表内容显示在form1的列表视图中。我正在使用form2编辑数据库。 当form2打开时,form1仍然可见 但是,当form2关闭时,在更新数据库之后,我希望form1刷新其列表视图,以显示新更新的信息 我有一种方法可以刷新表单1上的列表视图。如何从表单2执行此操作 我已将该方法设置为public,但仍然无法从form2将form1的实例传递给form2的构造函数: Form2 form2 = new Form2(this); 在form2的构造函数中

我有一个用来管理数据库的程序。我的数据库表内容显示在form1的
列表视图中。我正在使用
form2
编辑数据库。
form2
打开时,
form1
仍然可见

但是,当form2关闭时,在更新数据库之后,我希望form1刷新其
列表视图
,以显示新更新的信息

我有一种方法可以刷新
表单1
上的
列表视图。如何从
表单2
执行此操作


我已将该方法设置为public,但仍然无法从
form2

将form1的实例传递给form2的构造函数:

Form2 form2 = new Form2(this);
在form2的构造函数中,将对form1对象的引用存储为成员变量

然后,从form2的相关部分调用form1上的方法:

form1.RefreshListView();

如果我正确理解了这个问题,一种方法是在创建
Form2
时注册一个事件:

var form2 = new Form2();
form2.Closed += (sender, args) => this.RefreshListView();

该事件将在form2关闭时激发。对事件执行此操作的一个好处是
Form2
不需要了解任何有关
Form1
减少代码耦合的信息。

谢谢您,这是一种魅力。这是我的代码:private void BtdHomeWorker_Click(object sender,EventArgs e){AddHomeworker ah=new AddHomeworker();ah.FormClosing+=(sender1,args)=>this.AllHomeworkers();ah.Show();}