发 帖  

[经验] LabView使用.NET容器解决LabView自带的列表、表格和树等控件运行效率极其低下的问题

2016-12-2 14:44:07  4495
收藏 14 收藏 推荐 0 推荐
分享
LabView中的列表、表格和树型控件有个共同的问题就是数据刷新缓慢,数据量小的时候没有不易察觉,但当这类控件要显示大量的数据时,往往刷新一遍就要耗费甚至几分钟的时间。
究其原因是因为这类控件插入数据只能一条一条的插入,而不能将数据一次性导入,导致控件频繁的更新,耗费大量的资源。LabView自带的这些控件都无法在插入数据的过程中禁用这些控件的更新。现有的解决办法是这类控件更新时,调用前面板属性节点,禁用前面板更新,控件中的数据更新完成后再启用前面板更新,这样可以极大的提升控件刷新效率,但这样在数据控件添加数据过程中,控件相当于被锁死,对用户来说也极不友好。
所幸LabView提供了.NET容器和ActiveX容器,可以调用各种Windows平台的控件,可以解决LabView中控件刷新缓慢的问题。这里以.NET中的树形控件为例进行说明。
1)建立遍历文件夹的子VI,通过递归的方式,将指定路径下的所有文件夹和文件查找出来,并依次添加到树形控件的节点上,如图1所示。
2)新建主VI并在前面板添加.NET容器控件,右键单击选择插入.NET控件,在程序集中选择System.Windows.Forms(*.*.*.*)>TreeView,并确定,这样.NET树形控件就添加到前面板上了。TreeView是在System.Windows.Forms命名空间下声明的类,在LabView中通过属性节点和调用节点可以设置TreeView的属性和方法。图2中为TreeView控件添加了背景色(SkyBlue),和ImageList类(用来存储树形节点上的图标)。
3)TreeView控件经过上述设置之后,接下来是为其插入数据,其程序代码如如3所示。这里只是为了举例说明,因此结构用的比较简单随意。程序中TreeView.BeginUpdate表示提示控件要开始插入数据了,此时控件不会刷新界面,调用TreeView.EndUpdata后,控件开始界面刷新。具体内容可参考微软的MSDN。
4)完成之后,运行程序,效果如图4所示。对于包含上万个文件的文件夹,在LabView自带树形控件中,刷新一次,需要好几分钟,而对于.NET的TreeView控件来说,只需要几秒钟即可。

20161202_140605.jpg
20161202_143744.jpg
20161202_143757.jpg
20161202_143944.jpg

遍历文件夹.zip

下载积分: 积分 -1 分

33.35 KB, 下载次数: 250, 下载积分: 积分 -1 分

评分

参与人数 1积分 +5 收起 理由
wyq95361977 + 5 您的帖子很精彩,期待您分享的下一个帖子!.

查看全部评分

宁静致远。。 2016-12-2 15:00:47
楼主大神,以前在使用tree控件的时候都觉得刷新好慢,几百行需要好几秒的时间,这种方法确实不错,
回复

举报

隔壁老wang 2016-12-2 17:26:30
宁静致远。。 发表于 2016-12-2 15:00
楼主大神,以前在使用tree控件的时候都觉得刷新好慢,几百行需要好几秒的时间,这种方法确实不错,

效率确实可以提高至少好几十倍,数据量大的时候非常明显
回复

举报

woriaty 2016-12-2 17:58:56
厉害,学习一下
回复

举报

王栋春 2016-12-2 21:37:19
好贴 学习了     
回复

举报

快乐滴起飞 2016-12-5 13:53:50
感谢分享,对我做项目有很大启发。
回复

举报

zhiyuzhishan 2016-12-5 13:58:58
学习了。
回复

举报

yytu123 2016-12-5 20:44:42
2W条时   系统每次颤抖
回复

举报

wanghui289 2016-12-6 09:13:50
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
回复

举报

隔壁老wang 2016-12-6 09:20:45
yytu123 发表于 2016-12-5 20:44
2W条时   系统每次颤抖

不至于吧!我查找了包含18000+文件和文件夹的,用了接近10s,我电脑配置也不高,有可能是你的文件夹太多了。而且这个也只能提高Labview自带控件的效率,也是不能从根本上解决这个问题,用Labview自带的控件试试,2W条估计要几分钟。要想速度更快,只能再做优化或用其它语言了,我用c#查找一下1.8W多条基本不到3s。
回复

举报

lzhcl97 2016-12-9 12:41:36
感谢分享!!!!!!!!!!!
回复

举报

krize 2016-12-21 15:28:42
赞!其它很多.net控件也可以用,楼主可以再来一贴讲讲怎么让这些控件像labview中的控件一样响应值改变、鼠标点击等常用事件。
回复

举报

小黄小金小凤 2016-12-31 13:31:55
不错,给楼主点赞
回复

举报

quning123 2017-1-7 17:44:52
很不错的资料啊
回复

举报

sageliu 2017-3-18 09:21:16
很不错的资料啊
回复

举报

finalmoon 2017-5-12 11:18:23
好东西,学习了
回复

举报

lilyding8 2017-6-1 17:07:15
O(∩_∩)O谢谢楼主
回复

举报

lilyding8 2017-6-1 17:07:23
O(∩_∩)O谢谢楼主
回复

举报

亿度qiang 2017-12-2 22:30:37
学习学习。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
回复

举报

labview_2012 2017-12-5 23:51:18
谢谢分享
回复

举报

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

12下一页
发经验
关闭

站长推荐 上一条 /9 下一条

快速回复 返回顶部 返回列表
-

推荐专区

技术干货集中营

专家问答

用户帮助┃咨询与建议┃版主议事

工程师杂谈

项目|工程师创意

招聘|求职}工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

ARM技术论坛

Linux论坛

单片机/MCU论坛

MSP430技术论坛

FPGA|CPLD|ASIC论坛

STM32/STM8技术论坛

NXP MCU 技术论坛

DSP论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

无线充电技术

-

硬件设计论坛

电路设计论坛

电子元器件论坛

传感技术

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

-

EDA设计论坛

multisim论坛

PCB设计论坛

PADS技术论坛

Protel|AD|DXP论坛

Allegro论坛

proteus论坛|仿真论坛

Orcad论坛

-

综合技术与应用

电机控制

工程资源中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

-

无线通信论坛

物联网技术

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Analog/RF IC设计

设计与制造封装测试

-

厂商专区

TI论坛

TI Deyisupport社区

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

高校联盟

深圳大学电子协会

西藏民族学院电子设计协会

西安电子科技大学西电实验室

桂林电子科技大学机电工程协会

鉴鹰电子科技协会

广东海洋大学科技创新协会

福建农林大学电子科技创新协会

湖北理工学院电子技术协会

深圳职业技术学院电子精英训练营

浙江科技学院Zuster

湘潭大学电子科技协会

青岛理工大学琴岛学院天宏开发团队

河南理工大学大学生电器开发部

广西科技大学电气信息创新协会

浙江机电职业技术学院电子制作协会

郑州大学西亚斯国际学院爱电工作室

新乡学院电子创新工作室

洛阳理工学院SmartTeam

苏州工业职业技术学院创新工作室

浙江工业大学GC315团队

杭电-微芯大学生科技创新孵化器

西安工业大学电信科协

商洛学院科技创新协会

大连民族学院创新工作室

南京信息工程大学帆木工作室

-

供求信息发布

方案交易

供需广告

芯片求购|供应发布区