ztfmike
ztfmike
2019-12-13 11:53
采纳率: 71.4%
浏览 897

C# 如何在其他类中通知主窗口刷新界面?

我写了一个程序,用UDP接受一串数据,根据协议解析之后把各个数值放到一个类中,然后需要这个带有数据的类通知winform主界面刷新显示数据。这个需要怎么实现呢?

 ![图片说明](https://img-ask.csdn.net/upload/201912/13/1576209160_95036.png)

主要难点在于不知道怎么通知主窗口现在应该刷新数据了。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • qq_43024228
    Danny_hi 2019-12-13 13:02
    已采纳

    可以通过委托和事件来实现

    点赞 评论
  • hxycsdn9159
    hxycsdn9159 2019-12-13 14:32

    UAVMain这个实例的引用都可以直接拿到了还用的着什么委托?UAVMain.Info = info这句话不是已经赋值了吗?至于你界面没有刷新有两个可能:1.你在给info赋值的时候没有相应的给界面上的控件赋值。2.如果你已经给相应的控件赋值了得情况下还没刷新就是因为你把UAVMain.Info = info这句代码写到了死循环里面,然后循环下面还用了个ThreadSleep(50),如果你的RecvMsg()这个函数是在UI线程里面执行的,你的界面永远处于“假死”状态,因为你的窗体一直都在Sleep,根本没有处理界面消息的机会

    点赞 评论
  • chunjiang8257
    chunjiang8257 2019-12-18 12:06

    可以使用MVVM,在类中通知另外一个窗口的更新数据,只需修改窗口对应的viewmodel即可。Mvvmlight实现了专门的消息通知类。我实际项目中使用的stylet,窗口通信更为简单,不过需要使用WPF。
    https://blog.csdn.net/qq_43307934/article/details/91411591

    http://www.mamicode.com/info-detail-2326790.html

    点赞 评论

相关推荐