TreeView的使用Word下载.docx
《TreeView的使用Word下载.docx》由会员分享,可在线阅读,更多相关《TreeView的使用Word下载.docx(44页珍藏版)》请在冰点文库上搜索。
1为图象和文本,2为+/-号和文本;
3为+/-号、图象和文本;
4为直线和文本;
5为直线、图象和文本;
6为直线、+/-号和文本;
7(缺省)为直线、+/-号、图象和文本。
若Style属性设置为包含直线的值,则LineStyle属性就确定了直线的外观;
如果Style属性设置为不含直线的值,则LineStyle属性将被忽略。
(3)Sorted属性
返回或设置值,此值确定Node对象的根节点或子节点是否按字母顺序排列。
[语法]object.Sorted[=boolean]
Object代表一个对象表达式。
boolean的设置值是:
True——Node对象根据它们的Text属性按字母顺序排列。
其Text属性由数字开始的Node对象也作为字符串排序,第一个数字确定在排序中的初始位置,后面的数字确定以后的排序。
False——Node对象不排序。
Sorted属性有两种用法,第一,在TreeView控件的根(顶)层排列Node对象;
第二,对任何单个Node对象的子节点排序。
设置Sorted属性为True仅对当前Nodes集合排序。
在TreeView控件中添加新的Node对象时,必须再次设置Sorted属性为True,以便对添加的Node对象排列。
(4)appearance属性:
设置控件是否以3D效果显示。
(5)checkboxes属性:
决定在节点的每一项的旁边是否显示一个复选框,类似checkbox控件的作用。
(6)hottracking属性:
当鼠标指针经过某个条目时,这些条目是否突出显示,类似网页的超链接效果。
(7)labeledit属性:
决定用户是否能编辑控件中列出的项目,此项如果不想被改变,可将属性值设置为1
(8)linestyle属性:
设置列出的每项之间的行样式,即,如果为1,则当前项下还有子项的时候,它的前面会显示“+”号,如果值为2,则不显示“+”
(9)singlesel属性:
设置在树中选择新的条目时,是否展开此条目并收拢前一个条目,即设置为True时,并且当前选中的条目有子项的时候,会把子项展开,并将原来选中的条目收拢。
(10)style属性:
设置Treeview控件的每个列表的组成方式,比如“图片”+“文本”方式,等等,这样可以把Treeview设置得更美观一些。
2.2常用方法
(1)Add方法
在Treeview控件的Nodes集合中添加一个Node对象。
[语法]object.Add(relative,relationship,key,text,image,selectedimage)
[说明]
参数Object是必需的,为对象表达式。
参数Relative是可选的,代表已存在的Node对象的索引号或键值。
参数relationship是可选的,代表新节点与已存在的节点间的关系,指定的Node对象的相对位置。
relationship的设置值是:
0——tvwFirst首节点,该Node和在relative中被命名的节点位于同一层,并位于所有同层节点之前。
1——tvwLast最后的节点,该Node和在relative中被命名的节点位于同一层,并位于所有同层节点之后。
任何连续地添加的节点可能位于最后添加的节点之后。
2——tvwNext(缺省),下一个节点,该Node位于在relative中被命名的节点之后。
3——tvwPrevious,前一个节点,该Node位于在relative中被命名的节点之前。
4——tvwChild(缺省),子节点。
该Node为在relative中被命名的节点的子节点。
参数key是可选的,唯一的字符串,可用于用Item方法检索Node。
参数text是必需的,在Node中出现的字符串。
参数image是可选的,代表一个图像或在ImageList控件中图象的索引。
参数selectedimage是可选的,代表一个图像或在ImageList控件中图象的索引,在Node被选中时显示。
注意:
如果在relative中没有被命名的Node对象,则新节点被放在节点顶层的最后位置。
(2)GetVisibleCount方法
返回固定在TreeView控件的内部区域的Node对象的个数。
[语法]object.GetVisibleCount
object代表一个对象表达式,Node对象的个数取决于在一个窗口中能固定多少行。
总的行数取决于控件的高度和Font对象的Size属性。
可以使用GetVisibleCount属性确保可视的最小行数,这样可以精确地访问一个层。
如果最小行数是不可视的,可以用Height属性重新设置TreeView的大小。
2.3常用事件
NodeClick事件在一个Node对象被单击时发生。
[语法]PrivateSubobject_NodeClick(ByValnodeAsNode)
Object代表一个对象表达式,参数node是对被点取的Node对象的引用。
说明:
在单击节点对象之外的TreeView控件的任何部位,标准的Click事件发生。
当单击某个特定的Node对象时,NodeClick事件发生;
NodeClick事件也返回对特定的Node对象的引用,在下一步操作之前,该引用可用来使这个Node对象可用。
NodeClick事件发生在标准的Click事件之前。
3TreeView控件的使用
下面通过示例来介绍TreeView控件的常用方法、属性和事件。
[示例一]TreeView控件常用方法、属性和事件示例
(1)
在VBE编辑器中插入一个用户窗体,并在该窗体上添加一些控件,即一个TreeView控件、一个ImageList控件、一些命令按钮控件、一些选项按钮控件和一些标签控件,如图4所示。
图4:
用户窗体界面
在用户窗体代码窗口,输入下面的代码:
PrivateSubUserForm_Initialize()
'
初始化ImageList控件,添加图片
DimimgAsNewImageList
img.ListImages.Add1,"
book1"
LoadPicture(ThisWorkbook.Path&
"
\book1.jpg"
)
img.ListImages.Add2,"
book2"
\book2.jpg"
img.ListImages.Add3,"
book3"
\book3.jpg"
SetTreeView1.ImageList=img
设置显示节点路径时的分隔符
TreeView1.PathSeparator="
\"
EndSub
PrivateSubCommandButton1_Click()
添加节点
DimNodeXAsNode
TreeView1.Nodes.Clear
SetNodeX=TreeView1.Nodes.Add(,,"
课程科目"
"
SetNodeX=TreeView1.Nodes.Add("
tvwChild,"
语文"
数学"
外语"
政治"
物理"
化学"
生物"
PrivateSubCommandButton2_Click()
设置为复选框显示
TreeView1.CheckBoxes=True
PrivateSubCommandButton3_Click()
清除节点
PrivateSubCommandButton4_Click()
去掉复选框显示
TreeView1.CheckBoxes=False
PrivateSubCommandButton5_Click()
开启热跟踪功能
TreeView1.HotTracking=True
PrivateSubCommandButton6_Click()
编辑节点
TreeView1.StartLabelEdit
PrivateSubCommandButton7_Click()
显示根节点连线
TreeView1.LineStyle=tvwRootLines
PrivateSubCommandButton8_Click()
隐藏根节点连线
TreeView1.LineStyle=tvwTreeLines
PrivateSubCommandButton9_Click()
移除所选节点
若为根节点,则将其子节点一并移除
TreeView1.Nodes.RemoveTreeView1.SelectedItem.Index
PrivateSubCommandButton10_Click()
统计节点个数
Label1.Caption="
TreeView控件中节点对象的个数为:
"
&
TreeView1.Nodes.Count&
个."
PrivateSubCommandButton11_Click()
将所选节点变为粗体
TreeView1.SelectedItem.Bold=True
PrivateSubCommandButton12_Click()
DimiAsLong
Fori=1ToTreeView1.Nodes.Count
TreeView1.Nodes(i).Expanded=True'
展开所有节点
Nexti
PrivateSubCommandButton13_Click()
TreeView1.Nodes(i).Expanded=False'
折叠所有节点
PrivateSubOptionButton1_Click()
节点仅为文本
TreeView1.Style=tvwTextOnly
PrivateSubOptionButton2_Click()
节点为图像文本
TreeView1.Style=tvwPictureText
PrivateSubOptionButton3_Click()
节点为符号文本
TreeView1.Style=tvwPlusMinusText
PrivateSubOptionButton4_Click()
节点为直线文本
TreeView1.Style=tvwTreelinesText
PrivateSubOptionButton5_Click()
节点显示恢复正常
TreeView1.Style=tvwTreelinesPlusMinusPictureText
PrivateSubTreeview1_Nodeclick(ByValNodeAsMSComctlLib.Node)
返回对象路径
Label3.Caption=Node.FullPath
PrivateSubTreeview1_NodeCheck(ByValNodeAsMSComctlLib.Node)
复选框事件
Label5.Caption="
当前选择的节点是:
TreeView1.SelectedItem.Text
下面是该用户窗体的一些运行结果截图。
图5:
添加节点并展开节点。
图6:
为节点加上复选框。
图7:
选中复选框后,下面显示相应的信息。
图8:
选中某节点后显示相应的节点位置信息。
图9:
编辑某节点
图10:
图11:
将节点变为粗体
图12:
选择节点仅为文本后(其它选项按钮的效果用户可以自已体验)
[示例二]TreeView控件常用方法、属性和事件示例
(2)
在VBE编辑器中插入一个用户窗体,并在该窗体上添加一个TreeView控件、一个ImageList控件、两个标签控件、二个文字框、六个命令按钮,如下图13所示。
图13:
设计界面
在该窗体的代码窗口中,输入下面的代码:
OptionExplicit
'
定义变量
DimiAsInteger
DimjAsInteger
DimnodxAsNode
DimbAsBoolean
SetTreeView1.ImageList=img'
链接图像列
TreeView1.LineStyle=tvwTreeLines'
在兄弟节点和根节点之间显示线
树状外观包含全部元素
建立名称为"
VBA控件"
的父节点,选择索引为1的图像
Setnodx=TreeView1.Nodes.Add(,,"
1)
在"
根节点下建立"
第一章"
子节点,选择索引为3的图像
Setnodx=TreeView1.Nodes.Add("
child01"
3)
第二章"
child02"
b=False
IfTextBox1.Text<
>
AndTextBox2.Text<
Then
不允许建立零字节的根节点和子节点
j=TreeView1.Nodes.Count
Fori=1ToTreeView1.Nodes.Count'
检查新输入的根节点名称是否存在
IfTreeView1.SelectedItem.Children>
0Then
IfTextBox1.Text=TreeView1.Nodes(i).TextThenb=True
EndIf
Ifb=TrueThen'
若存在,则在根节点下建立子节点
Setnodx=TreeView1.Nodes.Add(TextBox1.Text,tvwChild,"
child"
j,TextBox2.Text,3)
Else'
若不存在,则建立根节点和子节点
Setnodx=TreeView1.Nodes.Add(,,TextBox1.Text,TextBox1.Text,1)
TreeView1.Refresh
ElseIfTextBox1.Text="
ThenMsgBox"
请输入根节点名称!
vbInformation,"
警告!
系统提示
ElseIfTextBox2.Text="
请输入子节点名称!
TreeView1.Sorted=True'
排列顺序
IfTreeView1.SelectedItem.Index<
1Then
TreeView1.Nodes.RemoveTreeView1.SelectedItem.Index'
删除选定的节点
End'
退出程序
PrivateSubTreeView1_Expand(ByValNodeAsMSComctlLib.Node)
Node.ExpandedImage=2'
节点被展开时,选择索引为2的图像
PrivateSubTreeView1_NodeClick(ByValNodeAsMSComctlLib.Node)
DimstrAsString
IfTreeView1.SelectedItem.Children=0Then'
检查是否有子节点,0为无
IfTreeView1.Nodes(i).SelectedThen
str=TreeView1.Nodes(i).FullPath
MsgBox"
您选择的是:
["
str&
]子节点!
运行后,初始化用户窗体,见UserForm_Initialize()事件代码。
首先在ImageList控件中添加三个图片,索引值分别为1、2、3;
然后语句SetTreeView1.ImageList=img将图片链接到TreeView控件中。
下面的两条语句使用LineStyle属性和Style属性来设置TreeView控件外观,再使用Nodes对象的Add方法来添加节点,其语法为:
Nodes.Add([relative][,r