ImageVerifierCode 换一换
格式:DOCX , 页数:44 ,大小:681.57KB ,
资源ID:23401638      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23401638.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(树控件TreeView.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

树控件TreeView.docx

1、树控件TreeView树控件TreeView-实例1 添加TreeView控件在“控件工具箱”中单击鼠标右键,从弹出的快捷菜单中选择“附加控件”(如图1所示),出现“附加控件”对话框。在该对话框中,找到“Microsoft TreeView Control,version 6.0”并选中前面的复选框,如图2所示,单击“确定”按钮。 图1:在工具箱中单击右键,选择“附加控件”。 图2:在“附加控件”对话框选中“TreeView控件”。注:下面的示例中可能要用到ImageList控件和ImageCombo控件,因此,将这两个控件也添加到“控件工具箱”中。最后的控件工具箱如图3所示。 图3:添加控件

2、后的工具箱。2 TreeView控件概述TreeView控件显示Node对象的分层列表,每个Node对象均由一个标签和一个可选的位图组成。TreeView 一般用于显示文档标题、索引入口、磁盘上的文件和目录、或能被有效地分层显示的其它种类信息。创建了TreeView控件之后,可以通过设置属性与调用方法对各Node对象进行操作,这些操作包括添加、删除、对齐和其它操作。可以编程展开与折叠Node对象来显示或隐藏所有子节点。Collapse、Expand和NodeClick三个事件也提供了编程功能。2.1 常用属性(1) Nodes属性返回对TreeView控件的Node对象的集合的引用。语法 ob

3、ject.Nodes object代表一个对象表达式。可以使用标准的集合方法(例如:Add和Remove方法)操作Node对象,可以按其索引或存储在Key属性中的唯一键来访问集合中的每个元素。(2) Style属性返回或设置图形类型(图象、文本、+/-号、直线)以及出现在TreeView控件中每一Node对象上的文本的类型。语法 object.Style = numberObject代表一个对象表达式,number指定图形类型的整数,number 的设置值是:0仅为文本;1为图象和文本,2为+/-号和文本;3为+/- 号、图象和文本;4为直线和文本;5为直线、图象和文本;6为直线、+/-号和文

4、本;7(缺省)为直线、+/- 号、图象和文本。若Style属性设置为包含直线的值,则LineStyle属性就确定了直线的外观;如果Style属性设置为不含直线的值,则LineStyle属性将被忽略。(3)Sorted属性返回或设置值,此值确定Node对象的根节点或子节点是否按字母顺序排列。语法 object.Sorted = booleanObject代表一个对象表达式。boolean的设置值是:TrueNode对象根据它们的 Text 属性按字母顺序排列。其Text属性由数字开始的Node对象也作为字符串排序,第一个数字确定在排序中的初始位置,后面的数字确定以后的排序。FalseNode对象

5、不排序。Sorted属性有两种用法,第一,在TreeView控件的根(顶)层排列Node对象;第二,对任何单个Node对象的子节点排序。设置 Sorted 属性为True仅对当前Nodes集合排序。在TreeView控件中添加新的Node对象时,必须再次设置Sorted属性为 True,以便对添加的Node对象排列。(4) appearance属性:设置控件是否以3D效果显示。(5) checkboxes属性:决定在节点的每一项的旁边是否显示一个复选框,类似checkbox控件的作用。(6) hottracking属性:当鼠标指针经过某个条目时,这些条目是否突出显示,类似网页的超链接效果。(7

6、) labeledit属性:决定用户是否能编辑控件中列出的项目,此项如果不想被改变,可将属性值设置为1(8) linestyle属性:设置列出的每项之间的行样式,即,如果为1,则当前项下还有子项的时候,它的前面会显示“+”号,如果值为2,则不显示“+”(9) singlesel属性:设置在树中选择新的条目时,是否展开此条目并收拢前一个条目,即设置为True时,并且当前选中的条目有子项的时候,会把子项展开,并将原来选中的条目收拢。(10) style属性:设置Treeview控件的每个列表的组成方式,比如“图片”+“文本”方式,等等,这样可以把Treeview设置得更美观一些。2.2 常用方法(

7、1) Add方法在Treeview控件的Nodes集合中添加一个Node对象。语法 object.Add(relative, relationship, key, text, image, selectedimage)说明参数Object是必需的,为对象表达式。参数Relative是可选的,代表已存在的Node对象的索引号或键值。参数relationship是可选的,代表新节点与已存在的节点间的关系,指定的Node对象的相对位置。relationship的设置值是:0tvwFirst首节点,该Node和在relative中被命名的节点位于同一层,并位于所有同层节点之前。1tvwLast最后的节

8、点,该Node和在relative中被命名的节点位于同一层,并位于所有同层节点之后。任何连续地添加的节点可能位于最后添加的节点之后。2tvwNext(缺省),下一个节点,该Node位于在relative中被命名的节点之后。3tvwPrevious,前一个节点,该Node位于在relative中被命名的节点之前。4tvwChild(缺省),子节点。该Node 为在relative中被命名的节点的子节点。参数key是可选的,唯一的字符串,可用于用Item方法检索Node。参数text 是必需的,在Node中出现的字符串。参数image是可选的,代表一个图像或在ImageList控件中图象的索引。参

9、数selectedimage是可选的,代表一个图像或在ImageList控件中图象的索引,在 Node被选中时显示。注意:如果在relative中没有被命名的Node对象,则新节点被放在节点顶层的最后位置。(2) GetVisibleCount方法返回固定在TreeView控件的内部区域的Node对象的个数。语法 object.GetVisibleCountobject代表一个对象表达式,Node对象的个数取决于在一个窗口中能固定多少行。总的行数取决于控件的高度和Font对象的Size属性。可以使用GetVisibleCount属性确保可视的最小行数,这样可以精确地访问一个层。如果最小行数是不

10、可视的,可以用Height属性重新设置TreeView的大小。2.3 常用事件NodeClick事件在一个Node对象被单击时发生。语法 Private Sub object_NodeClick(ByVal node As Node)Object代表一个对象表达式,参数node是对被点取的Node对象的引用。说明:在单击节点对象之外的TreeView控件的任何部位,标准的Click事件发生。当单击某个特定的Node对象时,NodeClick事件发生;NodeClick事件也返回对特定的Node对象的引用,在下一步操作之前,该引用可用来使这个Node对象可用。NodeClick事件发生在标准的C

11、lick事件之前。3 TreeView控件的使用下面通过示例来介绍TreeView控件的常用方法、属性和事件。示例一 TreeView控件常用方法、属性和事件示例(1)在VBE编辑器中插入一个用户窗体,并在该窗体上添加一些控件,即一个TreeView控件、一个ImageList控件、一些命令按钮控件、一些选项按钮控件和一些标签控件,如图4所示。 图4:用户窗体界面在用户窗体代码窗口,输入下面的代码:Private Sub UserForm_Initialize() 初始化ImageList控件,添加图片 Dim img As New ImageList img.ListImages.Add 1

12、, book1, LoadPicture(ThisWorkbook.Path & book1.jpg) img.ListImages.Add 2, book2, LoadPicture(ThisWorkbook.Path & book2.jpg) img.ListImages.Add 3, book3, LoadPicture(ThisWorkbook.Path & book3.jpg) Set TreeView1.ImageList = img 设置显示节点路径时的分隔符 TreeView1.PathSeparator = End SubPrivate Sub CommandButton1_

13、Click() 添加节点 Dim NodeX As Node TreeView1.Nodes.Clear Set NodeX = TreeView1.Nodes.Add(, , 课程科目, 课程科目, book3) Set NodeX = TreeView1.Nodes.Add(课程科目, tvwChild, 语文, 语文, book1) Set NodeX = TreeView1.Nodes.Add(课程科目, tvwChild, 数学, 数学, book1) Set NodeX = TreeView1.Nodes.Add(课程科目, tvwChild, 外语, 外语, book1) Set

14、 NodeX = TreeView1.Nodes.Add(课程科目, tvwChild, 政治, 政治, book1) Set NodeX = TreeView1.Nodes.Add(课程科目, tvwChild, 物理, 物理, book1) Set NodeX = TreeView1.Nodes.Add(课程科目, tvwChild, 化学, 化学, book1) Set NodeX = TreeView1.Nodes.Add(课程科目, tvwChild, 生物, 生物, book1)End SubPrivate Sub CommandButton2_Click() 设置为复选框显示 T

15、reeView1.CheckBoxes = TrueEnd SubPrivate Sub CommandButton3_Click() 清除节点 TreeView1.Nodes.ClearEnd SubPrivate Sub CommandButton4_Click() 去掉复选框显示 TreeView1.CheckBoxes = FalseEnd SubPrivate Sub CommandButton5_Click() 开启热跟踪功能 TreeView1.HotTracking = TrueEnd SubPrivate Sub CommandButton6_Click() 编辑节点 Tre

16、eView1.StartLabelEditEnd SubPrivate Sub CommandButton7_Click() 显示根节点连线 TreeView1.LineStyle = tvwRootLinesEnd SubPrivate Sub CommandButton8_Click() 隐藏根节点连线 TreeView1.LineStyle = tvwTreeLinesEnd SubPrivate Sub CommandButton9_Click() 移除所选节点 若为根节点,则将其子节点一并移除 TreeView1.Nodes.Remove TreeView1.SelectedItem

17、.IndexEnd SubPrivate Sub CommandButton10_Click() 统计节点个数 Label1.Caption = TreeView控件中节点对象的个数为: & TreeView1.Nodes.Count & 个.End SubPrivate Sub CommandButton11_Click() 将所选节点变为粗体 TreeView1.SelectedItem.Bold = TrueEnd SubPrivate Sub CommandButton12_Click() Dim i As Long For i = 1 To TreeView1.Nodes.Count

18、 TreeView1.Nodes(i).Expanded = True 展开所有节点 Next iEnd SubPrivate Sub CommandButton13_Click() Dim i As Long For i = 1 To TreeView1.Nodes.Count TreeView1.Nodes(i).Expanded = False 折叠所有节点 Next iEnd SubPrivate Sub OptionButton1_Click() 节点仅为文本 TreeView1.Style = tvwTextOnlyEnd SubPrivate Sub OptionButton2_

19、Click() 节点为图像文本 TreeView1.Style = tvwPictureTextEnd SubPrivate Sub OptionButton3_Click() 节点为符号文本 TreeView1.Style = tvwPlusMinusTextEnd SubPrivate Sub OptionButton4_Click() 节点为直线文本 TreeView1.Style = tvwTreelinesTextEnd SubPrivate Sub OptionButton5_Click() 节点显示恢复正常 TreeView1.Style = tvwTreelinesPlusMi

20、nusPictureTextEnd SubPrivate Sub Treeview1_Nodeclick(ByVal Node As MSComctlLib.Node) 返回对象路径 Label3.Caption = Node.FullPathEnd SubPrivate Sub Treeview1_NodeCheck(ByVal Node As MSComctlLib.Node) 复选框事件 Label5.Caption = 当前选择的节点是: & TreeView1.SelectedItem.TextEnd Sub下面是该用户窗体的一些运行结果截图。 图5:添加节点并展开节点。 图6:为节

21、点加上复选框。 图7:选中复选框后,下面显示相应的信息。 图8:选中某节点后显示相应的节点位置信息。 图9:编辑某节点 图10:显示根节点连线 图11:将节点变为粗体 图12:选择节点仅为文本后(其它选项按钮的效果用户可以自已体验)示例二 TreeView控件常用方法、属性和事件示例(2)在VBE编辑器中插入一个用户窗体,并在该窗体上添加一个TreeView控件、一个ImageList控件、两个标签控件、二个文字框、六个命令按钮,如下图13所示。图13:设计界面在该窗体的代码窗口中,输入下面的代码:Option Explicit定义变量Dim i As IntegerDim j As Inte

22、gerDim nodx As NodeDim b As BooleanPrivate Sub UserForm_Initialize() Dim img As New ImageList img.ListImages.Add 1, book1, LoadPicture(ThisWorkbook.Path & book1.jpg) img.ListImages.Add 2, book2, LoadPicture(ThisWorkbook.Path & book2.jpg) img.ListImages.Add 3, book3, LoadPicture(ThisWorkbook.Path & b

23、ook3.jpg) Set TreeView1.ImageList = img 链接图像列 TreeView1.LineStyle = tvwTreeLines 在兄弟节点和根节点之间显示线 树状外观包含全部元素 TreeView1.Style = tvwTreelinesPlusMinusPictureText 建立名称为VBA控件的父节点,选择索引为1的图像 Set nodx = TreeView1.Nodes.Add(, , VBA控件, VBA控件, 1) 在VBA控件根节点下建立第一章子节点,选择索引为3的图像 Set nodx = TreeView1.Nodes.Add(VBA控件

24、, tvwChild, child01, 第一章, 3) 在VBA控件根节点下建立第二章子节点,选择索引为3的图像 Set nodx = TreeView1.Nodes.Add(VBA控件, tvwChild, child02, 第二章, 3) b = FalseEnd SubPrivate Sub CommandButton1_Click() If TextBox1.Text And TextBox2.Text Then不允许建立零字节的根节点和子节点 b = False j = TreeView1.Nodes.Count For i = 1 To TreeView1.Nodes.Count

25、 检查新输入的根节点名称是否存在 If TreeView1.SelectedItem.Children 0 Then If TextBox1.Text = TreeView1.Nodes(i).Text Then b = True End If Next i If b = True Then 若存在, 则在根节点下建立子节点 Set nodx = TreeView1.Nodes.Add(TextBox1.Text, tvwChild, child & j, TextBox2.Text, 3) Else 若不存在,则建立根节点和子节点 Set nodx = TreeView1.Nodes.Add

26、(, , TextBox1.Text, TextBox1.Text, 1) Set nodx = TreeView1.Nodes.Add(TextBox1.Text, tvwChild, child & j, TextBox2.Text, 3) End If TreeView1.Refresh ElseIf TextBox1.Text = Then MsgBox 请输入根节点名称!, vbInformation, 警告! 系统提示 ElseIf TextBox2.Text = Then MsgBox 请输入子节点名称!, vbInformation, 警告! End IfEnd SubPriv

27、ate Sub CommandButton2_Click() For i = 1 To TreeView1.Nodes.Count TreeView1.Nodes(i).Expanded = True 展开所有节点 Next iEnd SubPrivate Sub CommandButton3_Click() For i = 1 To TreeView1.Nodes.Count TreeView1.Nodes(i).Expanded = False折叠所有节点 Next iEnd SubPrivate Sub CommandButton4_Click() TreeView1.Sorted =

28、True 排列顺序End SubPrivate Sub CommandButton5_Click() If TreeView1.SelectedItem.Index 1 Then TreeView1.Nodes.Remove TreeView1.SelectedItem.Index 删除选定的节点 End IfEnd SubPrivate Sub CommandButton6_Click() End 退出程序End SubPrivate Sub TreeView1_Expand(ByVal Node As MSComctlLib.Node) Node.ExpandedImage = 2 节点被

29、展开时,选择索引为2的图像End SubPrivate Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node) Dim str As String If TreeView1.SelectedItem.Children = 0 Then 检查是否有子节点,0为无 For i = 1 To TreeView1.Nodes.Count If TreeView1.Nodes(i).Selected Then str = TreeView1.Nodes(i).FullPath 系统提示 MsgBox 您选择的是: & str & 子节点! End

30、If Next i End IfEnd Sub运行后,初始化用户窗体,见UserForm_Initialize()事件代码。首先在ImageList控件中添加三个图片,索引值分别为1、2、3;然后语句Set TreeView1.ImageList = img将图片链接到TreeView控件中。下面的两条语句使用LineStyle属性和Style属性来设置TreeView控件外观,再使用Nodes对象的Add方法来添加节点,其语法为:Nodes.Add(relative,relationship,key,text,image,selectedimage)其中,参数relationship是通过关系节点参数与新节点连接的另一个节点;参数可能是以下情况:1-tvwlast 该节点置于所有其他的在relative中被命名的同一级别的节点的后面2-tvwNext 该节点置于在relative中被命名节点的后面3-

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1