Database 版 (精华区)
发信人: mengy (往事如风), 信区: Database
标 题: TreeView 控件应用详解
发信站: 哈工大紫丁香 (2000年12月06日19:53:39 星期三), 站内信件
TreeView 控件应用详解
TreeView 控件是在VFP的数据处理中很有用的一个ActiveX 控件,但是VFP
的帮助中却没有相关的说明,为帮助大家对这一控件有一个详细的了解,现将
TreeView 控件应用详解如下:
一、概述
TreeView 控件显示 Node 对象的分层列表,每个 Node 对象均由一个标签和
一个可选的位图组成。TreeView 一般用于显示文档标题、索引入口、磁盘上的文
件和目录、或能被有效地分层显示的其它种类信息。创建了 TreeView 控件之后,
可以通过设置属性与调用方法对各 Node 对象进行操作,这些操作包括添加、删除
、对齐和其它操作。可以编程展开与折回 Node 对象来显示或隐藏所有子节点。
Collapse、Expand 和 NodeClick 三个事件也提供编程功能。
Node 对象使用 Root、Parent、Child、FirstSibling、Next、Previous 和
LastSibling 属性。在代码中可通过检索对 Node 对象的引用,从而在树上定位。
也可以使用键盘定位。UP ARROW 键和 DOWN ARROW 键向下循环穿过所有展开的
Node 对象。从左到右、从上到下地选择 Node 对象。若在树的底部,选择便跳回
树的顶部,必要时滚动窗口。RIGHT ARROW 键和 LEFT ARROW 键也穿过所有展开的
Node 对象,但是如果选择了未展开的 Node之后再按 RIGHT ARROW 键,该
Node 便展开;第二次按该键,选择将移向下一个 Node。相反,若扩展的 Node 有
焦点,这时再按 LEFT ARROW 键,该 Node 便折回。如果按下 ANSI 字符集 中的
键,焦点将跳转至以那个字母开头的最近的 Node。后续的按该键的动作将使选择
向下循环,穿过以那个字母开头的所有展开节点。
控件的外观有八种可用的替换样式,它们是文本、位图、直线和 +/- 号的组
合,Node 对象可以任一种组合出现。
TreeView 控件使用由 ImageList 属性指定的 ImageList 控件,来存储显示
于 Node 对象的位图和图标。任何时刻,TreeView 控件只能使用一个 ImageList
。这意味着,当 TreeView 控件的 Style 属性被设置成显示图象的样式时,
TreeView 控件中每一项的旁边都有一个同样大小的图象。
发行注意 TreeView 控件是 COMCTL32.OCX 文件中的一组 ActiveX 控件的一
部分。为了在应用程序中使用 TreeView 控件,必须将 COMCTL32.OCX 文件添加到
工程中。在发行应用程序时,要在用户的 Microsoft Windows System 或
System32 目录中安装 COMCTL32.OCX 文件。
二、常用属性
1、Nodes属性返回对 TreeView 控件的 Node 对象的集合的引用。
语法:object.Nodes
object 所在处代表一个对象表达式,其值是“应用于”列表中的一个对象。
说明:可以使用标准的集合方法(例如 Add 和 Remove 方法)操作 Node 对
象。可以按其索引或存储在 Key 属性中的唯一键来访问集合中的每个元素。
2、Style属性返回或设置图形类型(图象、文本、+/- 号、直线)以及出现在
TreeView 控件中每一 Node 对象上的文本的类型。
语法:object.Style [ = number]
Style 语法包含下面部分:
部分 描述
object 对象表达式,其值是“应用于”列表中的一个对象。
number 指定图形类型的整数,请参阅“设置值”中的描述。
设置值
number 的设置值是:
设置值 描述
0 仅为文本。
1 图象和文本。
2 +/- 号和文本。
3 +/- 号,图象和文本。
4 直线和文本。
5 直线,图象和文本。
6 直线,+/- 号和文本。
7 (缺省)直线,+/- 号,图象和文本。
说明:若 Style 属性设置为包含直线的值,则 LineStyle 属性就确定了直线
的外观。如果 Style 属性设置为不含直线的值,则 LineStyle 属性将被忽略。
3、Sorted属性返回或设置一值,此值确定 Node 对象的子节点是否按字母顺
序排列;返回或设置一值,此值确定 TreeView 控件的根层节点是否按字母顺序排
列。
语法:object.Sorted [ = boolean]
Sorted 属性语法包含下面部分:
部分 描述
object 对象表达式,其值是“应用于”列表中的一个对象。
boolean 布尔表达式,表示 Node 对象是否已被排序如“设置值”中描述。
boolean 的设置值是:
设置值 描述
True Node 对象根据它们的 Text 属性按字母顺序排列。其 Text 属性由数字
开始的 Node 对象也作为字符串排序,第一个数字确定在排序中的初始位置,后面
的数字确定以后的排序。
False Node 对象不排序。
说明:Sorted 属性有两种用法,第一,在 TreeView 控件的根(顶)层排列 Node
对象,第二,对任何单个 Node 对象的立即子节点排序。例如,下面的代码是对
TreeView 控件的根节点排序:
TreeView1.Sorted = True '顶层 Node 对象被排序。
下面的例子表示创建 Node 对象时如何设置 Sorted 属性:
Dim nodX As Node
Set nodX = TreeView1.Nodes.Add(,,,"Parent Node")
nodX.Sorted = True
设置 Sorted 属性为 True 仅对当前 Nodes 集合排序。在 TreeView 控件中添加
新的 Node 对象时,必须再次设置 Sorted 属性为 True,以便对添加的 Node 对
象排列。
三、常用方法
1、Add 方法在 Treeview 控件的 Nodes 集合中添加一个 Node 对象。
语法:
object.Add(relative, relationship, key, text, image, selectedimage)
Add 方法的语法包含下面部分:
部分 描述
object 必需的。对象表达式,其值是“应用于”列表中的一个对象
relative 可选的。已存在的 Node 对象的索引号或键值。新节点与已存
在的节点间的关系,可在下一个参数 relationship 中找到。
relationship 可选的。指定的 Node 对象的相对位置,如设置值中所述。
key 可选的。唯一的字符串,可用于用 Item 方法检索 Node。
text 必需的。在 Node 中出现的字符串。
image 可选的。在关联的 ImageList 控件中的图象的索引。
selectedimage 可选的。在关联的 ImageList 控件中的图象的索引,在 Node
被选中时显示。
设置值
relationship 的设置值是:
常数 值 描述
tvwFirst 0 首的节点。该 Node 和在 relative 中被命名的节点位
于同一层,并 位于所有同层节点之前。
tvwLast 1 最后的节点。该 Node 和在 relative 中被命名的节点位
于同一层,并 位于所有同层节点之后。任何连续地添加的节点可能位于最后添加
的节点之后
tvwNext 2 (缺省)下一个节点。该 Node 位于在 relative 中被命
名的节点之后。
tvwPrevious 3 前一个节点。该 Node 位于在 relative 中被命名的节点
之前。
tvwChild 4 (缺省)子节点。该 Node 成为在 relative 中被命名
的节点的子节点。
注意如果在 relative 中没有被命名的 Node 对象,则新节点被放在节点顶层的最
后位置。
说明:
Nodes 集合是一个基于 1 的集合。
在添加 Node 对象时,它被指派一个索引号,该索引号被存储在 Node 对象的
Index 属性中。这个最新成员的 Index 属性值就是 Node 集合的 Count 属性的值
。
因为 Add 方法返回对新建立的 Node 对象的引用,所以使用这个引用来设置新
Node 的属性十分方便。
2、GetVisibleCount方法返回固定在 TreeView 控件的内部区域的 Node 对象
的个数。
语法:object.GetVisibleCount
object 所在处代表一个对象表达式,其值是“应用于”列表中的一个对象。
说明: Node 对象的个数取决于在一个窗口中能固定多少行。总的行数取决于控件
的高度和 Font 对象的 Size 属性。该计数包括列表底部的只能看到一局部的项。
可以使用 GetVisibleCount 属性确保可视的最小行数,这样可以精确地访问一个
层。如果最小行数是不可视的,可以用 Height 属性重新设置 TreeView 的大小。
四、常用事件
NodeClick 事件在一个 Node 对象被单击时,这个事件便发生。语法:
Private Sub object_NodeClick(ByVal node As Node)
NodeClick 事件的语法包含下面部分::
部分 描述
object 对象表达式,其值是“应用于”列表中的一个对象。
node 对被点取的 Node 对象的引用。
说明:
在单击节点对象之外的 TreeView 控件的任何部位,标准的 Click 事件发生。当
单击某个特定的 Node 对象时,NodeClick 事件发生;NodeClick 事件也返回对特
定的 Node 对象的引用,在下一步操作之前,这个引用可用来使这个 Node 对象可
用。
NodeClick 事件发生在标准的 Click 事件之前。
--
大海无边天做岸
山登绝顶我为风
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.227.121]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.457毫秒