在用C#写一个桌面程序,一个类在后台不停接收服务端推来的数据,需要更新到多个窗口控件中。窗口中有部分的控件引用了单独的UserControl或用代码创建,不想手动赋值每一个事件。是否有合适的方法可以将数据推给所有的窗口,让窗口自行处理。类似安卓中的广播。
在用C#写一个桌面程序,一个类在后台不停接收服务端推来的数据,需要更新到多个窗口控件中。窗口中有部分的控件引用了单独的UserControl或用代码创建,不想手动赋值每一个事件。是否有合适的方法可以将数据推给所有的窗口,让窗口自行处理。类似安卓中的广播。
可以使用WIN32API SendMessage 给对应窗口或者控件发窗口消息传递信息:
所有继承自Control的控件(包括Form)都有一个虚方法WndProc,你可以重写这个方法来接收消息:
至于怎么在消息里加入自己的消息数据,方法有很多,可以到bing上搜一下。
小技巧分享:使用PostMessage向窗体传递任何数据 (仅供参考,有效性未验证)