打开两个表单并在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();