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)
页面执行时间:4.063毫秒