在另一个表单中发生事件后更新一个表单

时间:2013-01-22 23:50:22

标签: c# winforms message

我正在努力确定基于另一个表单中发生的事件更新一个表单的最佳方法。

例如,我的应用程序有一个表单,显示ListView中的部件列表(即库存,非库存等...)。我的应用程序还有一个允许用户添加新部件的表单。该应用程序不是MDI

每次从其他表单插入,更新或删除项目时,更新显示部件列表的表单的最佳选项是什么?

我意识到,在从第一种形式实例化的情况下,我可以将引用传递给第二种形式但是,我宁愿不紧密地耦合这些形式。我已经尝试过自定义事件但是,我认为这需要在中间实现一个类,它接管表单的实例化,以便它可以访问这两个对象。

我想我可以使用.NET内置的属性。我最好的选择是什么?

1 个答案:

答案 0 :(得分:1)

如果我们只是谈论两种形式,我会选择简单的路线(例如,不要使用工厂类)。

在您的收件人表单中添加一个事件(如ProductListChanged

添加一个全局变量(通过静态类属性(见下文))来保存接收者表单。

public class globals {
  public static ProductForm productForm {get;set;}
}

然后,您可以通过全局静态属性提升ProductListChanged事件。