[教材]TreeView 控件帮助文件
ue4 treeview树形结构的简单使用方法

一、UE4中的TreeView树形结构概述UE4是一款功能强大的游戏开发工具,拥有丰富的功能和组件,其中就包括了TreeView树形结构。
TreeView是一种常见的用户界面控件,可以用于展示层级关系的数据,比如文件夹结构、菜单树等。
在UE4中,使用TreeView可以实现复杂的层级菜单、属性面板等功能,为游戏开发提供了便利。
二、创建TreeView树形结构1. 在UE4中,首先需要创建一个新的UserWidget,作为TreeView的父容器。
在编辑器中选择“User Interface” -> “Widget Blueprint”,创建一个新的UserWidget,并命名为TreeWidget。
2. 在TreeWidget中添加一个TreeView控件,可以在左侧的“Palette”中找到TreeView,并将其拖拽到TreeWidget的CanvasPanel中。
3. 接下来,我们需要在TreeView中添加树形结构的数据。
在TreeWidget的蓝图中创建一个函数,用于绑定数据到TreeView上。
我们可以创建一个名为BindData的函数,然后在该函数中使用AddChild和AddRoot函数向TreeView中添加节点数据。
4. 通过调用TreeView的SetItemHeight函数,可以设置每个节点的高度,使得TreeView显示更加美观。
还可以通过SetIndentation函数设置节点的缩进距离,以体现层级关系。
三、处理TreeView树形结构的交互1. 在UE4中,TreeView是支持交互操作的,比如鼠标点击、拖拽等。
通过监听TreeView的事件,我们可以实现节点的展开、折叠、选中等操作。
2. 在TreeWidget的蓝图中,可以通过绑定TreeView的事件回调函数来处理交互操作,比如OnItemClicked、OnItemDoubleClicked 等。
在这些回调函数中,可以编写逻辑代码来处理节点的展开、折叠等操作。
treeview控件应用

树形结构控件TreeViewTreeView是一种能以树形目录结构形式显示数据的高级控件,显示方式类似于Windows的资源管理器,能分层展开各结点的子目录,也能收缩各结点的子目录。
本节将先介绍TreeView控件的一些基本概念、属性与方法,再举例说明TreeView控件的应用。
TreeView控件概述、属性与方法1、作用:用于显示Node结点的分层列表。
2、添加到控件箱菜单命令:工程 | 部件,在部件对话框中选择:Microsoft Windows Common Controls 6.03、TreeView控件的属性(1)属性对话框用鼠标右键单击TreeView控件,在弹出式菜单中选择属性,进入属性设置对话框,该对话框分为通用、字体、图片三个选项卡,如图8.6所示。
①样式(Style):返回或设置在Node结点之间显示的线样式,如表8.6所示。
②鼠标指针(MousePoint):可选择不同鼠标样式,如表8.1所示。
③线条样式(LineStyle):0-tvwTreeLine 无根结点的树形结构,1-tvwRootLines有根结点的树形结构。
④标签编辑(LabelEdit):0-tvwAutomatic 自动,1-tvwManual 手工;⑤图像列表(ImageList):结点图标所用ImageList控件;⑥边框样式(BorderStyle):0-ccNone无边框,1-ccFixedSingle单边框;⑦外观(Appearence):0-ccFlat平面效果,1-cc3D 3D效果;⑧缩进:父子结点的水平间距。
(2)其它属性①SelectedItem.Text属性:用于返回或设置当前Node结点的内容。
②CheckBoxes属性:该属性只能取逻辑值,若取True值,则每个Node结点前出现一个复选框,否则不出现复选框。
4、TreeView控件的方法(1)Node结点①Node结点:是TreeView控件中的一项,它包含图像与文本。
qt treeview高级用法

一、介绍Qt是一款跨评台的C++应用程序开发框架,拥有丰富的UI控件库,可以帮助开发者快速构建各种桌面应用程序。
其中,Qt的QTreeView控件是用来显示树形结构数据的控件,通常用于显示文件系统、目录结构、数据分类等。
在本文中,将介绍Qt中QTreeView控件的高级用法,包括自定义数据模型、自定义视图以及树节点的操作等内容。
二、自定义数据模型1. 继承QAbstractItemModel在Qt中,通过继承QAbstractItemModel类可以实现自定义的数据模型。
我们可以根据自己的数据结构和需求来实现自己的数据模型,包括数据的组织方式、展示方式以及数据的增删改查等操作。
2. 实现必要的虚函数在自定义数据模型中,需要实现一些必要的虚函数,包括rowCount()、columnCount()、data()、index()等函数,用来告诉QTreeView控件如何获取数据、显示数据以及处理用户操作等。
3. 使用自定义数据模型创建自定义数据模型后,可以通过setModel()函数将数据模型应用到QTreeView控件中,从而实现树形结构的显示和操作。
三、自定义视图1. 继承QTreeView除了自定义数据模型,Qt还允许开发者自定义QTreeView控件的视图样式。
通过继承QTreeView类并重写相关的绘制函数,可以实现自定义的视图效果,包括节点的样式、展开/折叠的图标以及节点的编辑等功能。
2. 实现p本人ntEvent()函数在自定义QTreeView的视图样式时,通常需要重写p本人ntEvent()函数,以实现节点的自定义绘制效果。
开发者可以根据自己的需求和设计,绘制不同样式的节点、连接线以及展开/折叠的图标等。
3. 使用自定义视图创建自定义的QTreeView视图后,可以通过setView()函数将自定义的视图应用到QTreeView控件中,从而实现不同的视觉效果和交互体验。
四、树节点的操作1. 增加、删除节点在使用QTreeView控件时,通常需要实现对树节点的增加、删除操作。
C_-TreeView控件使用方法

TreeView 控件显示Node 对象的分层列表,每个Node 对象均由一个标签和一个可选的位图组成。
本文主要介绍C# treeView控件中,添加,修改、删除节点等c# treeview控件的使用方法。
其代码如下:1.private void Form1_Load(object sender, EventArgs e)2.{3. belEdit = true;//可编辑状态。
4.5.,这个结点是根节点。
6. TreeNode node = new TreeNode();7. node.Text = "hope";8. treeView1.Nodes.Add(node);9. TreeNode node1 = new TreeNode();10. node1.Text = "hopeone";11. TreeNode node11 = new TreeNode();12. node11.Text = "hopeoneone";13. TreeNode node2 = new TreeNode();14. node2.Text = "hopetwo";15. node1.Nodes.Add(node11);//在node1下面在添加一个结点。
16. node.Nodes.Add(node1);//node下的两个子节点。
17. node.Nodes.Add(node2);18.19. TreeNode t = new TreeNode("basil");//作为根节点。
20. treeView1.Nodes.Add(t);21. TreeNode t1 = new TreeNode("basilone");22. t.Nodes.Add(t1);23. TreeNode t2 = new TreeNode("basiltwo");24. t.Nodes.Add(t2);25.26.27.}28.29.private void button1_Click(object sender, EventArgs e)30.{//点击该按钮的时候,会移除选中项31. treeView1.Nodes.Remove(treeView1.SelectedNode);32.}33.34.private void button2_Click(object sender, EventArgs e)35.{//点击这个按钮的时候,可以修改选中项36. treeView1.SelectedNode.BeginEdit();37.}注意:在使用这个属性的时候,必须设置belEdit = true,否则会提示错误。
tkinter中treeview用法

tkinter中treeview用法tkinter是一个常用的Python图形用户界面(GUI)库,它提供了一组用于创建和管理窗口、组件和控件的功能。
其中,treeview是tkinter中一个常用的控件,用于显示数据的多层次结构。
treeview的基本用法如下:1. 导入必要的模块和库:```from tkinter import *from tkinter.ttk import Treeview```2. 创建主窗口:```root = Tk()root.title("TreeView Example")```3. 创建treeview对象:```tree = Treeview(root)tree.pack()```4. 定义treeview的列和列名:```tree["columns"] = ("column1", "column2", "column3")tree.heading("column1", text="Column 1")tree.heading("column2", text="Column 2")tree.heading("column3", text="Column 3")```5. 添加数据到treeview中:```tree.insert(parent="", index="end", text="Item A", values=("Value A1", "Value A2", "Value A3"))tree.insert(parent="", index="end", text="Item B", values=("Value B1", "Value B2", "Value B3"))```6. 绑定事件处理函数:```def handle_select(event):selected_item = tree.focus()item_text = tree.item(selected_item, "text")print("Selected Item:", item_text)tree.bind("<<TreeviewSelect>>", handle_select)```7. 运行主消息循环:```root.mainloop()```以上是treeview的基本用法,下面将详细介绍各个步骤。
TreeView控件添加、删除、重命名、上移、下移节点

TreeView控件添加、删除、重命名、上移、下移节点Public Class Form1Inherits System.Windows.Forms.Form#Region " Windows 窗体设计器生成的代码 "Public Sub New()MyBase.New()'该调用是 Windows 窗体设计器所必需的。
InitializeComponent()'在 InitializeComponent() 调用之后添加任何初始化End Sub'窗体重写 dispose 以清理组件列表。
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)If disposing ThenIf Not (components Is Nothing) Thencomponents.Dispose()End IfEnd IfMyBase.Dispose(disposing)End Sub'Windows 窗体设计器所必需的Private components As ponentModel.IContainer '注意: 以下过程是 Windows 窗体设计器所必需的'可以使用 Windows 窗体设计器修改此过程。
'不要使用代码编辑器修改它。
Friend WithEvents TreeView1 As System.Windows.Forms.TreeViewFriend WithEvents ContextMenu1 As System.Windows.Forms.ContextMenuFriend WithEvents createItems As System.Windows.Forms.MenuItemFriend WithEvents renameItems As System.Windows.Forms.MenuItemFriend WithEvents delSelectedNode As System.Windows.Forms.MenuItemFriend WithEvents newRootNode As System.Windows.Forms.MenuItemFriend WithEvents PreSelectedNode As System.Windows.Forms.MenuItemFriend WithEvents NextSelectedNode As System.Windows.Forms.MenuItem<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()Me.TreeView1 = New System.Windows.Forms.TreeViewMe.ContextMenu1 = New System.Windows.Forms.ContextMenuMe.newRootNode = New System.Windows.Forms.MenuItem Me.createItems = New System.Windows.Forms.MenuItemMe.renameItems = New System.Windows.Forms.MenuItem Me.delSelectedNode = New System.Windows.Forms.MenuItemMe.PreSelectedNode = New System.Windows.Forms.MenuItemMe.NextSelectedNode = New System.Windows.Forms.MenuItemMe.SuspendLayout()''TreeView1'Me.TreeView1.ContextMenu = Me.ContextMenu1Me.TreeView1.Dock = System.Windows.Forms.DockStyle.LeftMe.TreeView1.ImageIndex = -1belEdit = TrueMe.TreeView1.Location = New System.Drawing.Point(0, 0) = "TreeView1"Me.TreeView1.Nodes.AddRange(NewSystem.Windows.Forms.TreeNode() {New System.Windows.Forms.TreeNode("节点0", New System.Windows.Forms.TreeNode() {New System.Windows.Forms.TreeNode("节点2", New System.Windows.Forms.TreeNode() {New System.Windows.Forms.TreeNode("节点3")})}), New System.Windows.Forms.TreeNode("节点1")})Me.TreeView1.SelectedImageIndex = -1Me.TreeView1.Size = New System.Drawing.Size(121, 273)Me.TreeView1.TabIndex = 0''ContextMenu1'Me.ContextMenu1.MenuItems.AddRange(NewSystem.Windows.Forms.MenuItem() {Me.newRootNode, Me.createItems, Me.renameItems, Me.delSelectedNode, Me.PreSelectedNode, Me.NextSelectedNode})''newRootNode'Me.newRootNode.Index = 0Me.newRootNode.Text = "新建根节点"''createItems'Me.createItems.Index = 1Me.createItems.Text = "新建子节点"''renameItems'Me.renameItems.Index = 2Me.renameItems.T ext = "重命名节点"''delSelectedNode'Me.delSelectedNode.Index = 3Me.delSelectedNode.Text = "删除当前节点"''PreSelectedNode'Me.PreSelectedNode.Index = 4Me.PreSelectedNode.Text = "上移该节点"''NextSelectedNode'Me.NextSelectedNode.Index = 5Me.NextSelectedNode.Text = "下移该节点"''Form1'Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14) Me.ClientSize = New System.Drawing.Size(292, 273)Me.Controls.Add(Me.TreeView1) = "Form1"Me.Text = "Form1"Me.ResumeLayout(False)End Sub#End RegionPrivate Sub createItems_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles createItems.Click If TreeView1.SelectedNode Is Nothing ThenElseDim childNode As New TreeNodechildNode.Text = "新建子节点"TreeView1.SelectedNode.Nodes.Insert(0, childNode)TreeView1.SelectedNode.Expand()childNode.BeginEdit()TreeView1.SelectedNode = childNodeEnd IfEnd SubPrivate Sub TreeView1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TreeView1.MouseDownIf e.Button = MouseButtons.Right Then '获取当前制定的节点Dim ClickPoint As New Point(e.X, e.Y)TreeView1.SelectedNode = TreeView1.GetNodeAt(ClickPoint) End IfEnd SubPrivate Sub renameItems_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles renameItems.ClickIf TreeView1.SelectedNode Is Nothing ThenElseTreeView1.SelectedNode.BeginEdit()End IfEnd SubPrivate Sub delSelectedNode_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles delSelectedNode.ClickIf TreeView1.SelectedNode Is Nothing ThenElseTreeView1.SelectedNode.Remove()End IfEnd SubPrivate Sub newRootNode_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles newRootNode.ClickDim rootNode As New TreeNoderootNode.Text = "新建根节点"TreeView1.Nodes.Insert(0, rootNode)rootNode.BeginEdit()End SubPrivate Sub PreSelectedNode_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PreSelectedNode.ClickIf TreeView1.SelectedNode Is Nothing ThenElse '存在选中的节点则执行下面的动作Dim tempNode As New TreeNodetempNode = TreeView1.SelectedNode.PrevNodeIf tempNode Is Nothing ThenElse '上一个节点存在则执行下面的动作TreeView1.SelectedNode.PrevNode.Remove()Dim myTab As IntegermyTab = TreeView1.SelectedNode.Index + 1If TreeView1.SelectedNode.Parent Is Nothing ThenTreeView1.Nodes.Insert(myTab, tempNode)ElseTreeView1.SelectedNode.Parent.Nodes.Insert(myTab, tempNode)End IfEnd IfEnd IfEnd SubPrivate Sub NextSelectedNode_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NextSelectedNode.ClickIf TreeView1.SelectedNode Is Nothing ThenElse '存在选中的节点则执行下面的动作Dim tempNode As New TreeNodetempNode = TreeView1.SelectedNode.NextNodeIf tempNode Is Nothing ThenElse '上一个节点存在则执行下面的动作TreeView1.SelectedNode.NextNode.Remove()Dim myTab As IntegermyTab = TreeView1.SelectedNode.Index - 1If TreeView1.SelectedNode.Parent Is Nothing ThenTreeView1.Nodes.Insert(myTab, tempNode)ElseTreeView1.SelectedNode.Parent.Nodes.Insert(myTab, tempNode)End IfEnd IfEnd If End Sub End Class。
c#.net控件treeview用法
至此已经把在 C#操作 TreeView 组件的常用方法和一般方法基本都介绍完了。 三. C#编写的一个完整操作 TreeView 组件的例子:
//判断选定的节点是否存在下一级节点 if ( treeView1.SelectedNode.Nodes.Count == 0 ) //删除节点 treeView1.SelectedNode.Remove ( ) ; else MessageBox.Show ( "请先删除此节点中的子节点!" , "提示信息" , MessageBoxButtons.OK , rmation ) ;
//定位根节点 treeView1.SelectedNode = treeView1.Nodes [ 0 ] ; //展开组件中的所有节点 treeView1.SelectedNode.ExpandAll ( ) ;
< II > .展开选定节点的下一级节点:
由于只是展开下一级节点,所以就没有必要用 ExpandAll ( )方法了。展开下一级节点只 需要调用 Expand ( )方法就可以了,下面是具体的实现代码:
下面是 C#编写一个的关于 TreeView 组件的例子,在这个例子中,结合以上介绍的常 用方法和一般方法,基本覆盖来 TreeView 组件的一些最常用的操作。譬如可以灵活的程序 中的 TreeView 组件中,进行加入子节点、兄弟节点、删除节点、折叠、展开等操作。其中 前三种基本操作是通过程序中弹出菜单中的功能来实现的,后面操作是通过程序中的按钮来 实现的。下面是此程序的代码节略(TreeView.cs):
VFP TreeView控件使用详解
VFP TreeView控件使用详解(2)工作帮手网(),自2001年创办以来,一直坚持为在校学生、在职职工服务的宗旨。
网站目前有【工作总结频道】和【公文资料频道】,为各位网友提供工作总结,学生作文,述职报告,入党申请,论文范文等实用性文章,每天坚持更新。
强烈建议将本站加入收藏夹。
这个控件的使用率也是很高的,所以我们就应该好好掌握一下了。
在梅子这儿有一个TreeView控件的“玩转系列”。
很好!我也就是把她里面的一些精华截下来,给大家少作说明而已。
如果你想系统的学一下呢,就下一个“玩转系列”吧!简单的介绍:TreeView控件用来显示信息的分级视图,如同Windows里的资源管理器的目录。
TreeView控件中的各项信息都有一个与之相关的Node对象。
TreeView显示Node 对象的分层目录结构,每个Node对象均由一个Label对象和其相关的位图组成。
在建立TreeView控件后,我们可以展开和折叠、显示或隐藏其中的节点。
TreeView控件一般用来显示文件和目录结构、文档中的类层次、索引中的层次和其他具有分层目录结构的信息。
TreeView控件有3个属性页,General页、Font页、Picture页。
TreeView控件属性1。
LineStyle属性该属性设置本项控件中Node对象之间显示的线条类型。
格式:表单.TreeView名.LineStyle=值值的范围:0-TvwTreeLines (缺省)三线显示兄弟节点和父子节点之间的连线1-TvwRootLines 根(Root)线。
除了上述的连线以外,还显示根目录之间的连线需要注意的是:在设置该属性前,必须设置Style属性为TreeLine(三线)。
2。
Style属性该属性返回和设置表现在TreeView控件对象中Node对象的图形类型和文本类型。
格式:表单.TreeView名.Style=值值的范围:0-TvwTextOnly 文本1-TvwPictureText 图象和文本2-TvwPlusMinusText +/-以及文本3-TvwPlusPictureText +/-、图象以及文本4-TvwTreeLinesText 连线和文本5-TvwTreeLinesPictureText 连线、图象和文本6-TvwTreeLinesPlusMinueText 连线、+/-和文本7-TvwTreeLinesPlusMinusPictureText (缺省)连线、+/-、图象和文本3。
TreeView详解(转载)
This.TreeView1.ImageList=This.ImageList1.Object
this.TreeView1.Nodes.Add(,,,"Node 1")
this.TreeView1.Nodes.Add(,,,"Node 2")
THIS.TreeView1.Nodes(1).IMAGE=1 &&这里1表示节点图片为Images控件中的第1个图片
Relationship: 新节点放置的相对于第一个参数中指定的节点的位置,可以是以下值:
1: 节点放在相对节点所在级的所有节点的末端。
2: 节点放在相对节点的后面。
3: 节点放在相对节点的前面。
4: 节点成为相对节点的子节点。
Key: 用于指明节点的唯一串。 如果显示内容是从一个表的记录中载入的, 可使用记录的主关键字段值 (如果不是字符型的,还需要转换为字符型)。 否则, 可使用一个转换为串的顺序号。
* 来自From WINGDI.H
#define cnTWIPS_PER_INCH 1440
* 每英寸1440 缇
* 定义一些 Windows API 函数
declare integer GetActiveWindow in WIN32API
python tkinter treeview用法 -回复
python tkinter treeview用法-回复Python tkinter Treeview 用法Treeview 是tkinter 库中非常常用的一个控件,可以用于展示多级数据结构,如树状图,目录结构等。
Treeview 提供了一种方便的方式来展示和操作数据,本文将一步一步回答使用tkinter Treeview 控件的问题。
1. 什么是Treeview?Treeview 是一个可以显示多列数据的控件,类似于文件浏览器中的树状结构视图。
它可以在每个节点上显示文本、图标等内容,并支持展开和折叠节点,以便于用户浏览和操作数据。
2. Treeview 的基本使用在使用Treeview 控件之前,需要导入tkinter 和ttk(tkinter 的扩展模块)模块。
然后创建主窗口,并在主窗口中添加一个Treeview 控件。
pythonimport tkinter as tkfrom tkinter import ttkroot = ()tree = ttk.Treeview(root)3. 添加树节点Treeview 中的每个节点都有一个唯一的标识符,称为iid(item identifier)。
可以使用insert 方法添加树节点,并指定其在Treeview 中的位置。
下面是一个向Treeview 中添加树节点的示例:python# 添加根节点tree.insert("", "end", "root", text="Root")# 添加子节点tree.insert("root", "end", "child", text="Child")4. 添加子节点和标签Treeview 的每个节点可以包含一个或多个标签,用于显示不同的数据。
可以使用insert 方法的tags 参数添加标签,并使用column 参数指定标签显示在哪一列中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. TreeView 控件TreeView 控件显示Node 对象的分层列表,每个Node 对象均由一个标签和一个可选的位图组成。
TreeView 一般用于显示文档标题、索引入口、磁盘上的文件和目录、或能被有效地分层显示的其它种类信息。
语法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 控件是MSCOMCTL.OCX 文件中的一组ActiveX 控件的一部分。
为了在应用程序中使用TreeView 控件,必须将MSCOMCTL.OCX 文件添加到工程中。
在发行应用程序时,要在用户的Microsoft Windows System 或System32 目录中安装MSCOMCTL.OCX 文件。
2. Sorted 属性(TreeView 控件)返回或设置一值,此值确定Node 对象的子节点是否按字母顺序排列。
返回或设置一值,此值确定TreeView 控件的根层节点是否按字母顺序排列。
语法object.Sorted [ = boolean]Sorted 属性语法包含下面部分:部分描述object 对象表达式,其值是“应用于”列表中的一个对象。
boolean 布尔表达式,表示Node 对象是否已被排序如“设置值”中描述。
设置值boolean 的设置值是:设置值描述True Node 对象根据它们的Text 属性按字母顺序排列。
其Text 属性由数字开始的Node 对象也作为字符串排序,第一个数字确定在排序中的初始位置,后面的数字确定以后的排序。
False Node 对象不排序。
说明Sorted 属性有两种用法,第一,在TreeView 控件的根(顶)层排列Node 对象,第二,对任何单个Node 对象的立即子节点排序。
例如,下面的代码是对TreeView 控件的根节点排序:Private Sub Command1_Click()TreeView1.Sorted = True '顶层Node 对象被排序。
End Sub下面的例子表示创建Node 对象时如何设置Sorted 属性:Private Sub Form_Load()Dim nodX As NodeSet nodX = TreeView1.Nodes.Add(,,,"Parent Node")nodX.Sorted = TrueEnd Sub设置Sorted 属性为True 仅对当前Nodes 集合排序。
在TreeView 控件中添加新的Node 对象时,必须再次设置Sorted 属性为True,以便对添加的Node 对象排列。
Sorted 属性示例此例子在树上添加几个Node 对象。
单击一Node 时,用户将被询问是否想对Node 排序。
为试用此例,在窗体上放置TreeView 控件,并粘贴下面的代码到窗体的声明部分,运行此例,单击Node 对其排序。
Private Sub Form_Load()'用几个未排序的节点对象创建一树。
Dim nodX As NodeSet nodX = TreeView1.Nodes.Add(, , , "Adam")Set nodX = TreeView1.Nodes.Add(1, tvwChild, "z", "Zachariah")Set nodX = TreeView1.Nodes.Add(1, tvwChild, , "Noah")Set nodX = TreeView1.Nodes.Add(1, tvwChild, , "Abraham")Set nodX = TreeView1.Nodes.Add("z", tvwChild, , "Stan")Set nodX = TreeView1.Nodes.Add("z", tvwChild, , "Paul")Set nodX = TreeView1.Nodes.Add("z", tvwChild, "f", "Frances")Set nodX = TreeView1.Nodes.Add("f", tvwChild, , "Julie")Set nodX = TreeView1.Nodes.Add("f", tvwChild, "c", "Carol")Set nodX = TreeView1.Nodes.Add("f", tvwChild, , "Barry")Set nodX = TreeView1.Nodes.Add("c", tvwChild, , "Yale")Set nodX = TreeView1.Nodes.Add("c", tvwChild, , "Harvard")nodX.EnsureVisibleEnd SubPrivate Sub TreeView1_NodeClick(ByVal Node As Node)Dim answer As Integer'校验是否有子节点。
If Node.Children > 1 Then '有多个子节点。
answer = MsgBox("Sort this node?", vbYesNo) '提示询问用户。
If answer = vbYes Then '用户想排序。
Node.Sorted = TrueEnd IfEnd IfEnd Sub3. EnsureVisible 方法这个方法确保指定的ListItem 或Node 对象是可视的。
如果需要,这个方法可展开Node 对象并滚动TreeView 控件。
该方法仅可滚动ListView 控件。
语法object.EnsureVisibleobject 所在处代表一个对象表达式,其值是“应用于”列表中的一个对象。
返回值值描述True 如果ListView 或TreeView 控件必须滚动与/或扩展以显露该对象,该方法返回True。
False 如果不需滚动与/或展开,该方法返回False。
说明一个特定的Node 或ListItem 对象可能深藏于TreeView 或ListView 控件中,当要使其为可视时,使用EnsureVisible 方法。
如果Scroll 属性设置为False,则该方法将不会在TreeView 控件上起作用。
4. Node 对象和Nodes 集合Node 对象是TreeView 控件中的一项,它包含图像和文本。
Nodes 集合包含一个或多个Node 对象。
语法treeview.Nodestreeview.Nodes.Item(index)以上语法行,按照标准集合语法分别引用集合与集合中的单独元素。
treeview 对象表达式,其值是TreeView 控件。
index 整数或字符串,它唯一地标识Nodes 集合的一个成员。
整数是Index 属性的值,字符串是Key 属性的值。
说明节点可包含文本和图片。
然而,要使用图片,必须用ImageList 属性关联一个ImageList 控件。
图片可以根据节点的状态而改变;例如,如果将SelectedImage 属性设置为来自关联的ImageList 的图像,则被选中的节点可拥有与未选中的节点不同的图片。
5. Add 方法(Nodes 集合)在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 首的节点。