treeview控件用于显示分级的数据,列如组织树,磁盘上的文件和目录。
图例 2.40 典型的TreeView 可能用法: .创建一个能被用户使用的组织树
.创建一个显示二级或更多数据的树
设置Node对象属性 一个”tree“由许多层叠树叉的“nodes”组成,每个结点由图片(设置图片属性)和一个标签(设置文本属性)代表构成。 提供给结点的图片由联结到TreeView控件的ImageList控件提供。 一个结点可以展开或收缩,依赖于此结点是否有子结点。在最顶端层是”root“结点,并且每个根结点有一定数量的子结点。 结点的总数不受限制(除非机器约束)。图例2.41显示一个树以及2个根结点;”root1“有3个子结点,”child3“有一个它 自己的子结点。”root2“有子结点,并且通过”+“预示,但是没有展开。 图例2.41 Root and child nodes 树里的每个结点实际是一个可编程的Node对象---属于Nodes 搜索集。在其他的搜索集,这里每个成员有一个唯一的引索和 关键属性,他们允许你存取结点的属性。例如,下面的结点用特定的引索node("7")设置图片和文本属性: tvwMyTree.Nodes(7).Image="closed" tvwMyTree.Nodes(7).Text="ieee" 无论如何,如果一个唯一的关键,例如”7 ID“被赋值于结点,代码书写如下: tvwMyTree.Nodes("7 ID").Image="closed" tvwMyTree.Nodes("7 ID").Text="ieee" 结点关系以及涉及的亲戚结点 每个结点能拥有子结点或父结点,依赖于与其他结点的关系。Node对象几个属性返回不同种关于子结点或父结点的信息。例如, 下面的代码使用Children属性返回子结点数量---前提,拥有子结点: MsgBox tvwMyTree.Nodes(10).Children 尽管,一些属性不返回信息,作为子结点的属性,但是替代返回一个涉及其他的Node对象。例如,父结点属性返回父结点的任何 特定结点(只要这结点不是一个根结点)。由于这种涉及,你可以使用父结点调用任何方法或者设置属性,并应用到Node对象。 例如,下面的代码返回一个父结点的文本信息和引索属性。 MsgBox tvwMyTree.Nodes(10).Parent.Text MsgBox tvmMyTree.Nodes(10).Parent.Index 提示: 使用set声明一个Node类型的对象变量使用涉及到其他的Node对象。例如,下面的代码设置一个Node对象变量涉及返回父结点 属性。接下来使用对象变量返回关系结点属性: Dim tempNode As Node Set tempNode=tvwMyTree.Nodes(10).Parent MsgBox tempNode.Text '如果将KEY值设置成text相同的话,则在add(tvwMyTree.Nodes(X).Parent.Text,tvwchiilren,"","",3) MsgBox tempNode.Index 添加Node对象到Nodes搜索集 添加Node到树,使用add方法。这个方法包含2个参数,relative和relationship,其决定在哪里添加结点。第一个参数relative 命名结点;第二个参数relationship指定新结点和结点(relative)的关系。 例如,下面的代码添加一个结点”11 node“作为结点”7 node“的一个子结点。常数tvwChild指定新结点是一个子结点。 第三个参数赋值关键属性到新结点。 tvwMyTree.Nodes.Add "7 node",tvwChild,"11 node" 提示:使用set声明使用add方法使的调试你的代码更简单 |
|