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

一天zq 2019-05-09 10:02:21
在一个窗体中,创建了20个Label控件,分别命名为Label1、Label2....Label20,每个Label对应一个设备返回来的测量结果(设备发送报文的格式为“地址+数据”,)。请问大家,如何能通过一个循环或者其他方法,实现接收到数据之后批量更新每个Label上显示的内容?
...全文
361 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧