labview技术交流-树形控件的使用

应用场景

在我工作涉及到的项目,树形控件多用于编辑工艺流程,只用到两层,一层父项做文件夹,一层子项做逻辑流程步骤,类似于下图:

知识点

本篇文章主要是分享关于树形控件的几个用法:

  1. 动态添加项,包括父项和子项;
  2. 子项在父项类的上下移动。

代码展示

  1. 树形控件运行时菜单

     

    在树形控件空白的地方右键鼠标显示菜单“新建文件夹”,在已经存在的父项或子项上右键鼠标显示菜单“新建动作”和“删除动作”。 

  2. “新建文件夹”条件结构分支使用树形控件的调用节点“在后面添加项”,Item Indent设置为0,表示他是第一级为父项;left cell string为文本内容输入。
  3. “新建动作”条件结构分支首先判断此时的鼠标是放在父项上还是同级的子项上,放在父项上直接将此时的Tag传入Parent Tag;如果放在同级子项上,要先获得他的父项,再将父项传入Parent Tag。child position是添加新项在文件夹中的位置。默认0放在最前面,-1表示放在最后面。left cell string 为第一列内容,child text 为后续每列的内容。 
  4. “删除动作”条件结构分支很简单,使用树形控件的调用节点“删除项”,鼠标点击父项就删除整个文件夹,鼠标点击子项,则仅删除子项。
  5. 树形控件鼠标按下事件分支这个分支比较重要,我详细说一下。  这里是为子项上下移动做准备,当鼠标点击到子项的时候,获取所需要的信息包括这一行的所有列的文本内容、该子项在父项的child position、父项含有的子项个数、父项的tag以及indent level,我把它们做成了一个簇。indent level=0,说明是父项文件夹,不能移动,现在我暂时不考虑移动文件夹,只考虑将子项在文件夹内上下移动。(大家如果有时间有心思,可以研究下怎么移动整个父项)
  6.  按钮上下移动事件分支 我把树形控件的拖拽属性都禁用了,因为拖拽总是会导致缩进行改变,让子项和父项的关系变得混乱,而我只想要2级。我也研究了很久拖拽事件,但是没有好的结果,如果读者们有更好的方法,也可以分享出来。所以我选择了点击按钮来上下移动子项的方案。

        主要的思路就是在移动前删除选择项,移动后再将删除的选择项添加到特定的child position位置。所以我们需要在“树形控件鼠标按下“事件分支时先获取需要的所有信息。当然也需要注意,我们在将子项移动至两端时,就要判断,不再移动了,所以我们需要获取父项文件夹内的child count。

源码分享

我把所有的内容都放在了一个vi内,因为要截图,我担心使用子vi不能把完整的代码展示出来。这样看起来源码显得很乱,读者们如果能够理解我的思路,自己去封装子vi,那就更好了。

 百度网盘地址:

链接:https://pan.baidu.com/s/1mZ8BQ3PYHE2qWwx6fK0nvQ 
提取码:njgf

本人使用的labview是2020版,所以使用相同或高于该版本的labview才能打开 。 如果确实不方便,可以告诉我,我来降版本,也很快的。

最后,如果本文帮助到了你,请为我点赞吧。

  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花飞花落花满楼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值