在有层次结构的数据中用树型控件来展示非常的有效果。
(1)认识树型控件
树型控件的组成:
1.节点
这是树型控件的基础。每一个行都代表一个节点。在VBA代码中对应一个Node对象。有从属关系的节点称为父节点和子节点。
2. 节点的组成
节点外在的表现有节点图标和节点文本两部分。
如何用VBA代码填充一个树形控件:
(1)在VBA中所有的结点被存储在Nodes集合中。
例如一个名称叫tvwTest的树型控件,它所有的节点都在tvwTest.Nodes集合中。
利用Nodes集合的Add方法就可以添加一个新的节点了。
先看一下Add的语法:
这个Add是一个函数类型的方法,返回类型是Node,也就是你刚才添加的节点。这个函数功能的定义是:添加一个节点到节点集合中,并返回对新添加节点的引用。
参数都是可选的。也就是说,可以什么参数也不用,直接Add一个节点出来。
例如:
Dim nodNew as Node
set nodNew=tvwTest.Nodes.Add
然后再对这个Node的属性进行编辑
with nodeNew
.parent=...
.key=...
.text=...
.forecolor=...
end With
还有就是在Add的时候带参数。
参数的含义:
[Relative] :另外一个节点的Key值。 一个节点的Key值是用来识别这个节点的唯一索引值,不能重复,并且不能以数字开
头。
[Relationship]:表明新添加的节点与上面Relative指明的节点的关系。也就是说新添加的节点,要添加到哪里。
它的取值是下面图中的常量。看字面含义应该很好理解。
[Key]一个节点的Key值是用来识别这个节点的唯一索引值,不能重复,并且不能以数字开头。
[Text]就是节点显示的文本
[Image]:节点没有选中的时候的图标
[SelectedImage]:节点被选中时的图标
这个到下面再说。
(1)如果我想添加一个根节点,怎样做?
tvwTest.Nodes.Add , ,"K1","根节点1”, ,
或者:
set nodNew=tvwTest.Nodes.Add( , ,"K1","根节点1”, , )
(2)我想在刚才的节点下面建立一个子节点,怎样做?
set nodNew=tvwTest.Nodes.Add("K1",tvwChild,"K11","根1子1", ,)
然后把表中的数据再代替上面的相应的参数,就可以把表的数据填充到树型控件了。