Tree控件的使用

图 11 Tree控件的属性列表
本文引用地址:https://www.eepw.com.cn/article/201701/337511.htm
- 改变某些单元格的属性
从Tree控件可以看出它是有许多行和列组成的,其中每一行唯一的Tag值可以表征某一行,而列使用Numeric型数值指定,从0开始依次表示为第1行、第2行…。因此,如果需要改变某些单元格的属性,需要首先指定哪些行和列。
如同multicolum listbox一样,LabVIEW中使用Active属性用以说明具体指向哪一个单元格。图 12就是首先指定了Tag为C的行,第1列的单元格,然后输出该单元格上显示的文字。
图 12 Tree控件的Active属性
【注意】
- Cell Tag和Cell String是不同的,前者用来表示唯一的行,它的值必须唯一并且非空;而后者是单元格上显示的文字,可以与Tag相同,也可以不同。
- 当设置Tag为TREE_ALL_ROWS时,表示此时选定所有的行,可以使用此属性批量改变单元格的属性,如背景色等。
- 当设置Tag为TREE_COLUMN_HEADERS时,表示选定所有的列头。
- 当设置ActiveColumn为-2时表示选定所有的列;设置为-1时表示选定所有的列头。
例如,需要把Tree控件第1列的字体设置为粗体,则可以使用图 13所示的代码。
图 13 设置Tree控件第1列的字体设置为粗体
- Top Left Visible Cell属性
该属性使用的比较少,因此单独介绍一下。它表示Tree控件左上角第1个单元格的位置,这个属性在设置Tree控件滚动条的自动滚动时会经常使用。例如,当动态添加Tree控件的内容时,需要使Tree的滚动条随着内容的增加而自动滚动,保证最后添加的内容保持可见,就可以使用该属性。
可以尝试使用图 14所示的方法,并且在Tree控件中手动加入一些内容,任意拖动水平和垂直的滚动条,然后观察输出的值。
图 14 Tree控件的Top Left Visible Cell属性
- All Tags属性和Displayed Items属性
这两个属性比较类似,都是输出Tree控件的Tag值。但是前者表示输出所有行的Tag值;后者表示输出可见行的Tag值,也就是说只输出展开行的Tag值。可以单击第2行左侧的“—”符号,这样第3行就处于隐藏状态,分别获取这两个属性的值就很容易地知道二者的区别了。
1.4Tree控件对应的方法
典型的Tree控件方法如图 15所示,共有六大类。前文叙述了Point to Row Column方法,而Double Click方法表示双击的哪一行(或者称之为结点/Node),因此本节重点介绍其它的四类方法。
图 15 Tree控件的方法
1.4.1展开和收缩Tree的结点
- Open/Close.Open/Close All:展开或收缩所有的结点(行)。
- Open/Close.Item:展开或收缩某个结点(行)
- Open/Close.Ensure Visible:允许某个子节点可见。与上面的两个方法不同,该方法的输入是一个子结点的Tag,而不是母结点的Tag。
1.4.2检索Tree的结点
Navigate Tree中包含5个方法:Get Child、Get Next Item、Get Parent Item、Get Path和Get Previous Item。每个方法的功能如同它们的名字一样,使用也比较简单。
Get Next Item和Get Previous Item是一对相对的方法,在使用过程中有所不同,它是指同一层次的后一个结点和前一个结点。例如在图 16中A结点的下一个结点是B,而前一个结点是空。B结点的下一个结点是E,而前一个结点是A,因为只有E结点与B是同一层次上的,C结点和D结点位于B的下一个层次上。同理,C结点的下一个结点是D,而上一个结点是空。
图 16 Tree控件实例
1.4.3编辑Tree的结点
图 17显示了编辑Tree各个结点的所有方法,其中前三种表示增加结点操作,方式都大同小异。
评论