C# 在另一个窗体中发生事件后更新一个窗体

C# 在另一个窗体中发生事件后更新一个窗体,c#,winforms,message,C#,Winforms,Message,我正在努力根据另一个表单中发生的事件确定更新一个表单的最佳方式 例如,我的应用程序有一个表单,在列表视图中显示零件列表(即库存、非库存等)。我的应用程序还有一个表单,允许用户添加新部件。该应用程序不是MDI 每次从另一个表单插入、更新或删除项目时,更新显示零件列表的表单的最佳选项是什么 我意识到,如果表单是从第一个表单实例化的,我可以将引用传递到第二个表单,但我不希望将表单紧密耦合。我已经对自定义事件进行了实验,但我认为这将需要在中间实现一个类,该类接管窗体的实例化,以便它能够访问两个对象。p>

我正在努力根据另一个表单中发生的事件确定更新一个表单的最佳方式

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

每次从另一个表单插入、更新或删除项目时,更新显示零件列表的表单的最佳选项是什么

我意识到,如果表单是从第一个表单实例化的,我可以将引用传递到第二个表单,但我不希望将表单紧密耦合。我已经对自定义事件进行了实验,但我认为这将需要在中间实现一个类,该类接管窗体的实例化,以便它能够访问两个对象。p>
我想我可以使用.NET内置属性。我的最佳选择是什么?

如果我们只讨论两种形式,我会选择简单的方法(例如,不要使用factory类)

在receiver表单中添加事件(如
ProductListChanged

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

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

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

最好显示您当前的代码,以便查看/遵循您的逻辑思维。这听起来是一个简单得多的解决方案。因此,为了确保我正确理解……ProductForm(即接收方)将定义事件并处理它。然后,发送方(即AddItemForm、UpdateItemForm等)将在静态类中的ProductForm引用上触发ProductListChanged事件,ProductForm将处理该事件?对不起,我们都是学生。你答对了-是的。谢谢,这在我理解事件的过程中帮助了我。我过去参与的大多数项目都有一个或多个建筑师和资深人员在各自的专业领域帮助设计,尤其是关注的分层领域。这个项目是我第一次担任DBA、架构师、系统分析师、业务分析师、支持技术、UAT等职务……虽然有时令人沮丧,但它确实帮助我成长。这个网站和其他网站对我帮助很大,因为我在公司里没有资源寻求帮助和/或建议。@Grasshopper:这个网站对我来说也是一个巨大的资源。作为一家公司唯一的开发人员,这当然令人沮丧。如果你需要/想要在stack-o之外聊天,你可以在danwalker.ak@gmail的谷歌聊天上找到我