请教如何批量更新多个Label的Text值?

一天zq 2019-05-09 10:02:21
在一个窗体中,创建了20个Label控件,分别命名为Label1、Label2....Label20,每个Label对应一个设备返回来的测量结果(设备发送报文的格式为“地址+数据”,)。请问大家,如何能通过一个循环或者其他方法,实现接收到数据之后批量更新每个Label上显示的内容?
...全文
65 点赞 收藏 8
写回复
8 条回复
U闲程序猿 2019年05月09日
循环查找页面控件,判断控件是否为需要更新的控件,是则更新label的值
回复 点赞
wanghui0380 2019年05月09日
我们使用数据绑定 INotifyPropertychanged Binding //获取数据为异步阻塞(await 切换上下文,避免跨线程处置),如果内有线程请参考跨线程 假设你已经把上面的的都实现了,我来演示一下最终得效果 label1.DataBindings.Add("Text",旧对象,"属性1");//一次绑定就好,旧对象属性变化,label1自动变化 while (true) { 新数据 x=await get新数据 旧数据对象.属性1=x.属性1 //你就在这里进行两个数据的赋值,不需要去管界面上有多少东西,不要嫌麻烦,无论你用什么办法做,都的解析设备值并且更新新的值,这一步省不掉,我们能帮你省掉的是,业务处理就管业务处理,不管UI上有啥,张啥样 }
回复 点赞
物联网_咸鱼 2019年05月09日
放到同一个panel或者其他容器里,然后用这个容器.Controls可以全部获取,再跟上你的逻辑遍历修改即可
回复 点赞
bloodish 2019年05月09日
地址是否固定? 如果是,先建立地址和Label之间的对应关系,可以用Dictionary<int,Label> 收到数据后,根据地址快速定位Label,进行数据更新。
回复 点赞
OrdinaryCoder 2019年05月09日
事先把所有的lable存到一个集合或者数组里 之后赋值取值直接从操作该集合或者数组就可以
回复 点赞
正怒月神 2019年05月09日
回复 点赞
正怒月神 2019年05月09日
查找创体内所有控件 是 label并且名字Label开头的
回复 点赞
eaqpi 2019年05月09日
for each con as control in me.controls
if con.getype() ='Lable' then
dim lab as label =con
lab.text =???
endif
next
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.4w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告