C#WinForms窗体间消息通信

C# WinForm 窗体间发消息的方式挺多的,关键看你项目大小和通信复杂度。简单点的,用公共属性委托就行,传点小数据,响应也快,代码也简单。复杂点的,像多个窗体交互,事件总线或者单例模式就比较合适,耦合低,扩展方便。

事件委托,算是 WinForm 里比较常用的组合。你在一个窗体里定义事件,另一个窗体订阅它,改点值或者触发个动作都方便。代码量少,逻辑清楚,新手也能轻松上手。

接口这招也挺好用,是在做解耦的时候。你定义一套接口标准,谁实现谁响应,挺灵活的,维护起来也舒服。比起直接引用窗体要靠谱多。

至于通信中心,可以用静态类或者单例来搞个“中转站”,窗体都对它读写数据。多个窗体共享数据时效果不错,就是要注意线程安全问题,尤其 UI 线程那块。

再高阶点的玩法,比如消息队列或者专门的事件管理器,也挺适合多窗体、异步响应场景。不过如果只是两个窗体简单聊聊,真没必要搞这么复杂。

哦对了,还可以看看下面这些文章,都是实战经验总结:

如果你现在正好要做多窗体交互的项目,可以挑一两个方法试试,结合实际场景来选,灵活点更省事。

zip 文件大小:220.24KB