2010-06-14 85 views
5

在C#中,使用winforms,使表单相互交流的最佳方式是什么?发送数据,消息,字符串,无论从哪一个到另一个?不同形式之间的通信

代表?

想法?

+1

表单是否在同一个应用/过程中一起运行?最简单的方法是调用另一个方法,将数据作为参数传递,或者将另一个的属性设置为值。 – ChrisW 2010-06-14 00:43:23

+0

是的,同样的应用程序:P – 2010-06-14 06:43:55

回答

6

我们在几个Winform应用程序中成功使用了一种称为事件模式的事件。这是一个很好的link,可以帮助你开始。

3

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

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

有一个tutorial on MSDN for events here

+0

如果可能的话请更多地讨论它...你知道,我需要一篇关于在winforms之间发送和接收数据的speciaaly的文章:像主表单和搜索表单......谢谢 – odiseh 2011-01-15 08:24:07

1

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

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

额外的功劳你可以实现INotifyPropertyChanged,并让它触发一个事件。这样,如果有任何变化,所有查看设置的表单都会收到通知。