不同forms之间的沟通

在C#中,使用winforms,使表单相互通信的最佳方法是什么? 从另一个发送数据,消息,字符串等等?

代表们?

想法?

我们在几个Winform应用程序中成功使用了一个名为Event Pattern的东西。 这是一个很好的链接 ,可以帮助您入门。

您可以在一个表单中创建事件,然后以其他forms注册这些事件。 您还可以简单地访问从一个表单到另一个表单的属性。 例如,可能在第二种forms的构造函数中,您将为第一种forms传递变量。

听起来你正在寻找的是事件。 当某些事件发生时,将调用任何已注册的代理。

MSDN上有一个关于事件的教程 。

一切都取决于你想要沟通的内容。

假设它是配置数据; 您可以在名为Settings的主窗体上创建一个静态属性,这将暴露您的对象。 比所有表单都看到相同的Settings实例,并且所有表单都会看到任何更改。

要获得额外的功劳,您可以实施INotifyPropertyChanged,并让它触发一个事件。 这样,如果发生任何变化,将通知所有查看设置的表单。