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
? ject所在处代表一个对象表达式,其值是“应用于”列表中的一个对象。
说明:可以使用标准的集合方法(例如: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事件之前。
说明: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事件之前。
分享到:
相关推荐
TreeView控件使用技巧
这是一个关于ASP.NET中treeview控件用法的小程序!
ASP.NET中TreeView控件使用小结
TreeView控件是在VFP的数据处理中很有用的一个ActiveX 控件,但是VFP的帮助中却没有相关的说明,为帮助大家对这一控件有一个详细的了解,现将TreeView控件应用详解如下: 一、概述 TreeView控件显示Node对象的分层...
可实现节点的CheckBoxes功能中的全选与选中子节点时,其所有父节点和所有子节点都选中(只有点击CheckBoxes时才会实现)
包括TreeView控件参数、TreeView控件应用简析、TreeView详解等三个文件。VC、VB、vfp、SQL程序员的必备武器。
QT TreeView控件的操作,包括同级节点的添加、子节点的添加、节点的删除,并提供了数据库表的设计与操作。
通过实例让你掌握TreeView的基本操作!
treeview控件TreeView详解(转载)好文章大家一起分享! 1、设置背景色 #Define TVM_SETBKCOLOR 4381 Declare Long SendMessage In User32 Long HWnd,Long wMsg,Long wParam,Long Lparam =SendMessage(Thisform....
用来建立进化树TreeView详解(转载) TreeView 控件响应一些我们觉的VFP 控件的方法和事件: Click, DblClick, Drag, DragDrop, DragOver, GotFocus, KeyDown, KeyPress, KeyUp, LostFocus, MouseDown, MouseMove, ...
用惯了treeview控件的朋友可以试一试这款axtree控件,它增添了更多的控制(129KB) 3,richedit 利用RichText实现的编辑器,提供了修改字体,打印,查询等功能(4KB) 4,exptrocx.zip 实现explorer风格的树型目录的...
C# 右键菜单添加与实现 右键菜单添加与实现
在这里你将会很轻松的学会Treeview控件的使用
在一般Winform开发的情况下,可以使用微软的TreeView控件,也可以使用DevExpress的TreeList控件进行数据的展示,本篇随笔主要介绍基于DevExpress的TreeList控件使用以及使用SearchControl对节点进行查询的操作。...
主要演示了TreeView如何与数据库进行绑定
主要为大家详细介绍了js组件Bootstrap TreeView使用方法,本文一部分针对于bootstrap的treeview的实践,另一部分是介绍自己写的树形菜单,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
其中运用最频繁的就是ListBox和TreeView控件。一、ListBox和TreeView控件的区别1.ListBox显示单层次数据集合,TreeView可以显示单层次和多层次数据集合;2.通过ListBox在UI层面可以展示良好的数据显示效果,对数据...
TreeView控件显示的内容比较单一,如果需要呈现更详细信息TreeListView是一个不错的选择。 先看效果: 首先需要引用文件System.Windows.Forms.TreeListView.dll、System.Runtime.InteropServices.APIs.dll 你可以将...
tree=ttk.Treeview(win) #参数:parent, index, iid=None, **kw (父节点,插入的位置,id,显示出的文本) myid=tree.insert("",0,"中国",text="中国China",values=("1")) # ""表示父节点是根 myidx1=tree.insert...
主要为大家详细介绍了Bootstrap树形菜单插件TreeView.js使用方法,一款非常酷的基于bootstrap的jQuery多级列表树插件,具有一定的实用性,感兴趣的小伙伴们可以参考一下