打开两个表单并在form2上运行form1

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

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

我有一个方法刷新form1上的listview 。 如何从form2执行此操作?

我已将方法设置为public,但我仍然无法从form2访问它。

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

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

Form.Closed关闭时将触发Form.Closed事件。 使用事件执行此操作的一个优点是Form2不需要知道有关Form1减少代码耦合的任何信息。

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

 Form2 form2 = new Form2(this); 

在form2的构造函数中,将对form1对象的引用存储为成员变量。

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

 form1.RefreshListView();