VB控件-treeview用法详解.doc

上传人:豆**** 文档编号:23961808 上传时间:2022-07-02 格式:DOC 页数:37 大小:161.50KB
返回 下载 相关 举报
VB控件-treeview用法详解.doc_第1页
第1页 / 共37页
VB控件-treeview用法详解.doc_第2页
第2页 / 共37页
点击查看更多>>
资源描述

《VB控件-treeview用法详解.doc》由会员分享,可在线阅读,更多相关《VB控件-treeview用法详解.doc(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateVB控件-treeview用法详解VB TreeView控件使用详解VBTreeView控件使用详解(2012-06-16 15:08:16)转载标签:it分类:VB编程笔记第一小时:学习直接用代码将数据填充到树控件中。为什么要先学习直接用代码将数据填充到树控件中?因为这种方法是最简单的,代码也最容易理解,学习树控件,先将这个学会,已经掌握了一半,所以先不要急着想怎么

2、将表中的数据填充到树控件中,在第一小时里,树控件和表完全没有关系。目的:我们要在树控件中建立如下的一个3层级关系水果|_苹果| |_红富士| |_国光|_葡萄|_红提子|_青提子解释:水果包含2种,一种是苹果,一种是葡萄,苹果又包含2种,一种是红富士,一种是国光,葡萄也如此。在这里:“爷”是水果,“父”是苹果,葡萄,“子”是红富士,国光,红提子,青提子。概括如下:爷(只能有一个):水果父(这里有2个):父1:苹果;父2:葡萄子(这里有4个):子1:红富士(父1苹果的子);子2:国光(父1苹果的子);子3:红提子(父2葡萄的子);子4:青提子(父2葡萄的子)1、新建一个窗体,在窗体上放置两个控件

3、,一个是Treeview,一个是Imagelist如何找到这两个控件?Treeview控件在“工具箱”的榔头加扳手图标(其他控件)中选“Microsoft Treeview Control,Version 6.0Imagelist控件在“工具箱”的榔头加扳手图标(其他控件)中选“Microsoft Imagelist Control,Version 6.0Treeview控件大家都明白干什么用的,Imagelist控件是干什么用呢?原来这个控件是放图标用的,如果你想在树控件中显示图标的,这个图标都将储存在ImageList控件中。2、设置这两个控件的属性首先要讲清楚控件的属性设置有2种,一种是

4、设置这个控件在ACCESS中的属性,比如名称等。一种是设置这个控件本身的属性。要设置这个控件在ACCESS中的属性,选中控件后按鼠标右键选“属性”就可以了。跟我们平时设置文本框什么的一样。要设置这个控件本身的属性,只要双击这个控件就可以了。1)设置Treeview控件在ACCESS中的名称属性,将名称设置为“Treeview2)设置Imagelist控件在ACCESS中的名称属性,将名称设置为“Image2)设置Imagelist控件本身的属性,双击控件后,在弹出来的设置框中选“Images,单击“Insert Picture按钮,在你电脑中选择你需要的图标。在“Key:”栏中填入“K1”。其

5、他默认设置不用改。3)设置Treeview控件本身的属性,双击控件后,在弹出来的设置框中选“General”,在这个选项面版中有很多项设置,大多数是设置树控件的显示格式,你自己慢慢研究。这里我们将第一项“Style选7,在第五项“Imagelist选项中将我们放置的Imagelist控件“Image选上。这项设置就将图标和树控件联系了起来。3、写代码将数据填充到树控件中代码写在哪里?我们希望窗体一打开,数据就自动填充在树控件中,所以这个代码就写在窗体的加载事件中,代码及解释如下:VBScript code复制代码Private Sub Form_Load()* -*用代码将数据填充到树控件中*

6、 -Dim Nodeindex As Node*-*解释:定义Node*Node是树控件的对象*每个Node都有三个东西,图标,文本,索引值*图标和文本都是实际显示出来的,索引值是隐含的*-设置最顶级的“爷”:* -Set Nodeindex = TreeView.Nodes.Add(, , 爷, 水果, K1)Nodeindex.Sorted = True*-*树控件填充数据的方法是Nodes.Add*括号内是Add方法的参数*在这里“爷”是索引值,“水果”是将显示的文本,“K1”是图标的索引值*Sorted是指Node的排序,True就是指采用排序,默认是按拼音*第一,二个参数是空的*具体

7、的参数设置以后你可以慢慢详细研究*-设置第二级“父”* -Set Nodeindex = TreeView.Nodes.Add(爷, tvwChild, 父1, 苹果, K1)Nodeindex.Sorted = TrueSet Nodeindex = TreeView.Nodes.Add(爷, tvwChild, 父2, 葡萄, K1)Nodeindex.Sorted = True*-*第一个参数“爷”是指这一层对应上层“爷”的*tvwChild参数是规定格式,指相对来说,这一层是爷的子层*“父1”是索引值,因为“父”有2个,而索引值是唯一的,所以要编号,用“父1”“父2”分开*“苹果”“葡

8、萄”是要显示的文本,K1是显示图标的索引值*现在知道为什么在“爷”层设置时,第一,第二个参数是空的,因为这是最顶层*-设置第三级“子”* -Set Nodeindex = TreeView.Nodes.Add(父1, tvwChild, 子1, 红富士, K1)Nodeindex.Sorted = TrueSet Nodeindex = TreeView.Nodes.Add(父1, tvwChild, 子2, 国光, K1)Nodeindex.Sorted = TrueSet Nodeindex = TreeView.Nodes.Add(父2, tvwChild, 子3, 红提子, K1)No

9、deindex.Sorted = TrueSet Nodeindex = TreeView.Nodes.Add(父2, tvwChild, 子4, 青提子, K1)Nodeindex.Sorted = True*-*第一个参数“父1,2”是指这一层对应上层“父”的,但要注意对应的是“父1”还是“父2”*tvwChild参数是规定格式,指相对来说,这一层是父的子层*“子1”是索引值,因为“子”有4个,而索引值是唯一的,所以要编号,用“1,2,3,4”分开*“红富士”等是要显示的文本,K1是显示图标的索引值*-End Sub就这么多代码,总共十几行,就可以在树控件中显示数据了,很简单吧。第一小时结

10、束。第二小时:学习怎样将树控件和数据库中的数据绑起来在第一小时里,我们学习了怎样直接用代码填充树控件,但在实际使用中,这种方法的应用性不大,只有将树控件与数据库中的数据结合起来,才能有真正的应用。其实绑定数据库的方法和直接用代码填充是大同小异的,我们要做的只是将Add的参数里,原来我们手工输入的变换一下,让程序知道去数据库中找数据。目的:将数据库中的数据与树控件绑定背景:我们想在树控件中显示销售客户的层级列表,这个销售客户的分层是这样的,先按“大区”,再按“省份”,最后到“客户”我们在数据库中建立了三个表,字段如下:大区表:大区ID,大区名称省份表:省份ID,省份名称,所属大区客户表:客户ID

11、,客户名称,所属省份这三个表互相建立了关系1、新建一个窗体,在窗体上放置两个控件,一个是Treeview,一个是Imagelist2、设置这两个控件的属性在这里和第一小时唯一的区别是我们在Imagelist控件的设置时,导入了两个图标,一个KEY为K1,一个为K2,原来树控件的Node图标是可以变化的,我们准备某个项没有选中时的图标是一个没有打开的文件夹,选中时是一个打开的文件夹,以区别。3、编写代码,如下:VBScript code复制代码Private Sub Form_Load()* -* 用数据库表(查询也一样)中数据填充树控件* -Dim Rec As New ADODB.Recor

12、dsetDim stRecQL As StringDim Item As IntegerDim i As IntegerDim nodindex As Node* -* 定义各类* -设置最顶级的爷* -Set nodindex = TreeView.Nodes.Add(, , 爷, 销售客户, K1, K2)nodindex.Sorted = True* -*这里的设置跟第一小时里基本是一样的*但最后多了一个K2的参数,K1代表的是未被选中时的图标,K2代表是被选中后的图标*仔细观察一下,你会发现选中和没选中的图标是不一样的,一个是一个文件夹,一个是一个打开的文件夹* -设置第二级父* -R

13、ec.Open 大区表, CurrentProject.Connection, adOpenKeyset, adLockOptimistic, adCmdTableDirectFor i = 0 To Rec.RecordCount - 1Set nodindex = TreeView.Nodes.Add(爷, tvwChild, 父 & Rec.Fields(大区ID), Rec.Fields(大区名称), K1, K2)nodindex.Sorted = TrueRec.MoveNextNextRec.Close* -*第一行意思是打开一个表去寻找数据(查询也是可以的)*关键在与Add参数

14、的变化*大家看第三个参数,在第一小时里,这里是父1,这里用Rec.Fields(大区ID)来代替1,意思是用表的编号来代替手工编号*第四个参数也是一样,直接用表中的名称字段来取代原来我们手工的命名* -设置第三级子* -Rec.Open 省份表, CurrentProject.Connection, adOpenKeyset, adLockOptimistic, adCmdTableDirectFor i = 0 To Rec.RecordCount - 1Set nodindex = TreeView.Nodes.Add(父 & Rec.Fields(所属大区), tvwChild, 子 &

15、 Rec.Fields(省份ID), Rec.Fields(省份名称), K1, K2)nodindex.Sorted = TrueRec.MoveNextNextRec.Close* -*不用再解释了吧*要注意的是,定义第一个参数的时候,不是用父 & Rec.Fields(大区ID),而是用父 & Rec.Fields(所属大区)*这个意思是:用省份表中关联大区表的字段,而不是直接用大区表的ID* -设置第四级孙* -Rec.Open 客户表, CurrentProject.Connection, adOpenKeyset, adLockOptimistic, adCmdTableDirec

16、tFor i = 0 To Rec.RecordCount - 1Set nodindex = TreeView.Nodes.Add(子 & Rec.Fields(所属省份), tvwChild, 孙 & Rec.Fields(客户ID), Rec.Fields(客户名称), K1, K2)nodindex.Sorted = TrueRec.MoveNextNextRec.Close* -*到此你应该完全明白了* -End Sub第二小时结束第三小时:将树控件与窗体结合我们做树控件,当然不可能单单为了显示层级数据,我们希望跟窗体结合,当我们单击树控件中的某个客户时,窗体上能相应的转到这个客户的

17、资料。目的:将树控件与窗体结合1、我们还是沿用第二个小时里的例子,但在建立窗体时,将窗体的数据来源设为“客户表”,并在窗体中放置好客户表的字段。2、写入如下代码:VBScript code复制代码Private Sub Treeview_NodeClick(ByVal Node As Object)* -*树控件的鼠标点击事件为NodeClick* -Dim str As String* -*定义一个筛选* -If Node.Text = 销售客户 Or Node.Key Like 父* Or Node.Key Like 子* Thenstr = * -*在第一小时里,我们说了Node有三个东

18、西,图标,文本,索引值*文本就是text,索引值就是Key这里将就是说当我们点击爷,父或子层的时候,不筛选窗体*这个条件也可写成:If Node.key = 爷 Or Node.Key Like 父* Or Node.Key Like 子* Then* -Elsestr = 客户名称= & Node.Text & End IfMe.Form.FilterOn = TrueMe.Form.Filter = str*按指定的条件进行窗体筛选End Sub明白了吧,所谓结合窗体,实际不过是进行窗体筛选而已。第三小时结束(5分钟也够了,哈哈)学习很有乐趣,但写文章却很无聊,如果你通过这篇文章学会了树控件的基本使用,跟个贴吧,也好让我有点成就感。这里有个源码实例,大家可以参考下。-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁