LabVIEW 树形控件

/*

7月31日更,解决了以下问题:

1、选项卡“报文日志”中的树形控件避免重复添加。方法是判断前一个节点的tag是否是已有节点的tag值(假设是Mote 1)再加上后缀"_1"(即为Mote 1_1),若存在tag为Mote 1_1的节点,调用节点方法删去该节点。

2.选项卡“网络拓扑”中节点接入与否的指示灯亮了之后又灭的问题,这个问题与解析报文显示控件簇的初始化是一个问题,解决方法是在最开始即写入字符串"CLEAR"用于表示清空显示控件簇,这样避免了使用全局变量,也避免了必须使用一个大VI的问题。

3、树形控件重复添加问题,现象是Mote 1~Mote 8没问题,然后Mote 8之后又是Mote 1。。。等等。针对这个问题,使用了“首次调用”这个控件。

*/

1、控件简介

LabVIEW的树形控件以树型结构显示信息,每个节点带细节描述列。可以显示该节点的其它信息。如下图所示

2、控件的常用属性、方法、事件

控件的常用属性、方法、事件可以很方便的从LabVIEW的帮助或者编写简单的Demo获取,这里就不再赘述。

只是有一点需要注意,控件属性结构上显示的字符是控件的Left Cell String,可以重复,再控件内部管理这些节点是用Tag属性,该属性为字符串类型,不可重复,如果增加节点时不设置该属性,LabVIEW会默认将Left Cell String作为Tag,遇到重复的情况以”下划线加数字”区分。如“张三_1”。在控件的方法、事件中获取到节点值都是控件的Tag。

3、常见操作的实现方法

3.1 增加节点

使用控件的 Add Item 方法,如图所示:

如果只是增加一个节点作为树的最后一个节点,可以使用Add Item To End 方法。

3.2 删除节点

使用控件的delete Item 方法

Delete children 代表删除父节点是否要删除子节点。如果不删除子节点,子节点将往上移动一层替代原父节点的位置。如果该节点没有子节点而要求删除,将会产生错误。所以删除时最好先检测是否有子节点。若tag连接空字符串,则删除树形结构所有节点。

3.3 节点的移动

LabVIEW 的树型结构控件节点的界面拖拽代码不需要设计者编写,只需要设置Allow

Draging ,Allow Draging of Parant Items ,Allow Draging Between Items 属性即可。

如果在运行时需要由程序移动节点,使用方法Move Item 即可

程序中要展开,收合节点使用Open/Close方法

3.4 获取当前用户选中的节点

要获知当前用户选中的节点需要使用该控件的事件(ValueChange)

其中NewVal是当前选中节点的Tag,OldVal 是前一次选中节点的Tag

3.5 节点的查找

LabVIEW Tree Control 提供节点的查找方法有

 Get Child

获取父节点的第一个孩子节点

 Get Next

获取节点同一层次的下一个节点

 Get Parent

获取节点的父节点

 Get Path

获取当前节点从上之下的父子节点关系,从顶节点开始,到目标节点的所有父系节点(包括当前节点),结果放于字符串数组中

3.6 节点的遍历

看了节点的查找方法后,我们不禁要问,难道我要全面遍历节点需要通过这些方法来编写复杂的遍历代码吗?答案是否定的。Tree Control有个属性是Display Items ,按照先序遍历顺序将所有节点的Tag存储在字符数组中,相当于delphi Tree Control 的Items。可以通过对数组的遍历实现对树节点的全面访问。

3.7 界面显示内容操作

前面提到了该控件内部管理树是通过Tag管理,界面显示与Tag无关,Tree Control管理界面显示的内容类似Grid,每一个格子为一个单元,可以设置其属性,也可读出值。

3.7.1 读取left Cell String 或Child Text的值

使用两个属性节点,首先将要读取的格子置为Active(使用Active Item Properties和Active Cell Properties),再读取Active Cell String 即可。

3.7.2 修给某Item的值

如果修改Item的Tag,可以使用方法节点 Set Tag,如果修改Left Cell String或者Child Text方法有二:

方法一:将该Item删除再添加。

方法二:仿照3.7.1

3.8 控件内容运行时修改

我们不难发现,该控件可以在设计时修改值,再进行增加节点,填入节点内容等等操作,但是当程序运行时却不能由用户修改Cell里的值。也就是不具备输入功能。网站上LabVIEW官方的说法是我们目前使用的包是Base Package 。而要进行这项操作需要Full Package ,或Professional package 支持。如果项目中不需要用户在树型控件中输入就不升级了。

LabVIEW树形控件相关推荐

  1. SharePoint2010沙盒解决方案基础开发——关于TreeView树形控件读取列表数据(树形导航)的webpart开发及问题...

    转:http://blog.csdn.net/miragesky2049/article/details/7204882 SharePoint2010沙盒解决方案基础开发--关于TreeView树形控 ...

  2. treeview控件怎么使用修改发育树_树形控件在生产力工具中的设计

    惊!半年实践血泪史,3000 字深度好文,一个爱树的设计师手把手教你如何设计「树 」! 树形控件是种常见的设计模式,几乎与图形化用户界面同时诞生,通过结构化的组织方式逐级展示内容,让整体信息架构一目了 ...

  3. element-ui中el-tree树形控件-树节点的选择(选中当前节点,获取当前id并且获取其父级id)...

    在element-ui的el-tree树形控件中默认获取选取当前选中id的方法是this.$refs.tree.getCheckedKeys(); 但是如果子节点不是全部选中的话,父节点算不选中. 由 ...

  4. vue的$nextTick使用总结,this.$refs为undefined的解决办法,element Ui的树形控件setCheckedKeys方法无法使用

    vue的$nextTick使用总结,this.$refs为undefined的解决办法,element Ui的树形控件setCheckedKeys方法无法使用 参考文章: (1)vue的$nextTi ...

  5. vue树形结构html,怎么在vue中利用递归组件实现一个树形控件

    怎么在vue中利用递归组件实现一个树形控件 发布时间:2021-06-11 17:26:48 来源:亿速云 阅读:81 作者:Leah 本篇文章为大家展示了怎么在vue中利用递归组件实现一个树形控件, ...

  6. 树形控件CTreeCtrl的使用详解(一)

    树型视的三个结构TVINSERTSTRUCT.TVITEM.NMTREEVIEW TVINSERTSTRUCT 包含添加新项到树形视控件所使用的信息.这个结构被TVM_INSERTITEM消息使用.这 ...

  7. VS2010/MFC编程入门之三十(常用控件:树形控件Tree Control 上)

    前面两节为大家讲了列表视图控件List Control,这一节开始介绍一种特殊的列表--树形控件Tree Control. 树形控件简介 树形控件在Windows系统中是很常见的,例如资源管理器左侧的 ...

  8. 树形控件Tree Control

    树形控件Tree Control 前面两节为大家讲了列表视图控件List Control,这一节开始介绍一种特殊的列表--树形控件Tree Control. 树形控件简介 树形控件在Windows系统 ...

  9. 025_Tree树形控件

    1. Tree树形控件 1.1. Tree树形控件用清晰的层级结构展示信息, 可展开或折叠. 1.2. Tree树形控件内部使用了Node类型的对象来包装用户传入的数据, 用来保存目前节点的状态. 1 ...

  10. duilib 自带树形控件的认识

    CTreeViewUI 1.该控件继承自CListUI,所以是使用了对应的列表来模拟树形控件.该控件的容器填装的是CTreeNodeUI,而CTreeNodeUI也继承CListContainerEl ...

最新文章

  1. 最低售价17999元,华为发布新一代折叠屏手机Mate X2,将首批升级HarmonyOS
  2. 计算机技能测试小学老师,小学信息技术教师专业技能测习题-20210726171728.docx-原创力文档...
  3. 工作中用的linux命令
  4. 修改Bootstrap的一些默认样式
  5. 字节流写数据的三种方式
  6. 用epl的開源產品開發,可以閉源
  7. 文件管理系统_Python学习第170节--Linux文件管理系统实际操作和具体介绍
  8. DM8168芯片级资源
  9. Leetcode-2 两数相加【c语言】
  10. 尴尬!Google搜索现在也会“千人千面”了,退出登录也一样
  11. Spring5的几个新特性
  12. 前端使用Aliplayer 播放器 播放rtmp直播流
  13. imagine php,使用imagine/imagine实现制作一个图片
  14. Data truncation: Data too long for column ‘xxx‘ at row xxx问题详解
  15. 如何增加微信朋友圈分享链接的小图片
  16. Opencv中的ROI介绍
  17. 软考系统架构师教材推荐和学习方法
  18. Canvas + CSS3实现可视化项目开场动画
  19. 计算机基础知识2001年版本,2001年4月份《计算机应用基础》试题及答案(全国)...
  20. C语言sum函数不接受一个参数,函数不接受2个参数怎么解决

热门文章

  1. VC安装产生eula.1028.txt等文件的问题
  2. Flappy bird制作过程
  3. 用一个创业故事串起操作系统原理(五)
  4. javascript编写_编写可读高效JavaScript代码的4个关键原则
  5. OSPF协议的四种网络类型
  6. 四川眉山中院宣判两起特大跨国电信诈骗案
  7. 信用卡诈骗新招式:谎称银行来电帮提升额度
  8. 适合运动时戴的蓝牙耳机有哪些、非常优秀的运动型蓝牙耳机推荐
  9. 【web前端期末大作业】简单的学生网页作业源码 基于html css javascript jquery技术设计的音乐网站(44页)
  10. c语言扩展编译器,TKStudio内置51编译器SDCC对C语言的扩展(2)