文章探索:   分类:    关键字:  
  + 栏目导航
  + 相关文章
如何用VB.Net创建一个三层的数据库应..
使用TreeView控件
在VB.NET中使用动态属性
用VB.NET轻松制作特效窗体


技术教程 -> VB.NET教程 ->  
使用TreeView控件
来源:转载   人气:755   录入时间:2007-11-8
     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
    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方法使的调试你的代码更简单。
   




Copyright(C)2007-2025 广州市佳沛数码科技有限公司 版权所有
公司地址: 广州市荔湾区东漖北路560号511室
电话:020-81803473 传真:020-81544987