首页 三小时掌握TREEVIEW控件

三小时掌握TREEVIEW控件

举报
开通vip

三小时掌握TREEVIEW控件三小时掌握TREEVIEW控件三小时掌握TREEVIEW控件能不能掌握控件的使用,是业余向准专业进步的关键。虽然我本人不太喜欢用控件,因为基于不同的操作环境成品后效果很难保证。但有些成熟控件,会使用还是能提高软件水平。比如TREEVIEW控件,TREEVIEW控件,也叫树控件,主要用于层级显示和控制,应用广泛。我一直很想学习这个控件的使用,但每次都没有学成,总感觉很难。前几天有空,狠下心来将论坛搜索一遍,发现也不是太难,在很短时间内只要方法得当,很快可以掌握,因为我是菜鸟,所以用菜鸟的方法和大家交流,可能大家学得更...

三小时掌握TREEVIEW控件
三小时掌握TREEVIEW控件三小时掌握TREEVIEW控件能不能掌握控件的使用,是业余向准专业进步的关键。虽然我本人不太喜欢用控件,因为基于不同的操作环境成品后效果很难保证。但有些成熟控件,会使用还是能提高软件水平。比如TREEVIEW控件,TREEVIEW控件,也叫树控件,主要用于层级显示和控制,应用广泛。我一直很想学习这个控件的使用,但每次都没有学成,总感觉很难。前几天有空,狠下心来将论坛搜索一遍,发现也不是太难,在很短时间内只要 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 得当,很快可以掌握,因为我是菜鸟,所以用菜鸟的方法和大家交流,可能大家学得更快一点,只要你用心,三个小时一定可以掌握。请大家一定要自己动手做,只有做才能理解,光看帮助和说明是没有用的。热身:理解层级概念,层级理论上可以有无限级,一般用到四,五级也够用了。最上级的只能有一个,我们把它叫做“爷”,接下来是“父”,再是“子”,再是“孙”,接下来是“曾孙”......,汇总如下:“爷,父,子,孙,曾孙”,这里是5级关系,除了“爷”只能有一个外,其余可以有无限个。记住这些,下面要用。第一小时:学习直接用代码将数据填充到树控件中。为什么要先学习直接用代码将数据填充到树控件中?因为这种方法是最简单的,代码也最容易理解,学习树控件,先将这个学会,已经掌握了一半,所以先不要急着想怎么将表中的数据填充到树控件中,在第一小时里,树控件和表完全没有关系。目的:我们要在树控件中建立如下的一个3层级关系水果||__苹果||__红富士||__国光||__葡萄|__红提子|__青提子解释:水果包含2种,一种是苹果,一种是葡萄,苹果又包含2种,一种是红富士,一种是国光,葡萄也如此。在这里:“爷”是水果,“父”是苹果,葡萄,“子”是红富士,国光,红提子,青提子。概括如下:爷(只能有一个):水果父(这里有2个):父1:苹果;父2:葡萄子(这里有4个):子1:红富士(父1苹果的子);子2:国光(父1苹果的子);子3:红提子(父2葡萄的子);子4:青提子(父2葡萄的子)1、新建一个窗体,在窗体上放置两个控件,一个是Treeview,一个是Imagelist如何找到这两个控件?Treeview控件在“工具箱”的榔头加扳手图标(其他控件)中选“MicrosoftTreeviewControl,Version6.0"Imagelist控件在“工具箱”的榔头加扳手图标(其他控件)中选“MicrosoftImagelistControl,Version6.0"Treeview控件大家都明白干什么用的,Imagelist控件是干什么用呢?原来这个控件是放图标用的,如果你想在树控件中显示图标的,这个图标都将储存在ImageList控件中。2、设置这两个控件的属性首先要讲清楚控件的属性设置有2种,一种是设置这个控件在ACCESS中的属性,比如名称等。一种是设置这个控件本身的属性。要设置这个控件在ACCESS中的属性,选中控件后按鼠标右键选“属性”就可以了。跟我们平时设置文本框什么的一样。要设置这个控件本身的属性,只要双击这个控件就可以了。1)设置Treeview控件在ACCESS中的名称属性,将名称设置为“Treeview"2)设置Imagelist控件在ACCESS中的名称属性,将名称设置为“Image"2)设置Imagelist控件本身的属性,双击控件后,在弹出来的设置框中选“Images",单击“InsertPicture"按钮,在你电脑中选择你需要的图标。在“Key:”栏中填入“K1”。其他默认设置不用改。3)设置Treeview控件本身的属性,双击控件后,在弹出来的设置框中选“General”,在这个选项面版中有很多项设置,大多数是设置树控件的显示格式,你自己慢慢研究。这里我们将第一项“Style"选7,在第五项“Imagelist"选项中将我们放置的Imagelist控件“Image"选上。这项设置就将图标和树控件联系了起来。3、写代码将数据填充到树控件中代码写在哪里?我们希望窗体一打开,数据就自动填充在树控件中,所以这个代码就写在窗体的加载事件中,代码及解释如下:PrivateSubForm_Load()'*-----------------------------------------------------------------'*用代码将数据填充到树控件中'*-----------------------------------------------------------------DimNodeindexAsNode'*------------------------------------------------------------------'*解释:定义Node'*Node是树控件的对象'*每个Node都有三个东西,图标,文本,索引值'*图标和文本都是实际显示出来的,索引值是隐含的'*------------------------------------------------------------------'设置最顶级的“爷”:'*---------------------------SetNodeindex=TreeView.Nodes.Add(,,"爷","水果","K1")Nodeindex.Sorted=True'*------------------------------------------------------------------'*树控件填充数据的方法是Nodes.Add'*括号内是Add方法的参数∙∙第二小时第二小时:学习怎样将树控件和数据库中的数据绑起来在第一小时里,我们学习了怎样直接用代码填充树控件,但在实际使用中,这种方法的应用性不大,只有将树控件与数据库中的数据结合起来,才能有真正的应用。其实绑定数据库的方法和直接用代码填充是大同小异的,我们要做的只是将Add的参数里,原来我们手工输入的变换一下,让程序知道去数据库中找数据。目的:将数据库中的数据与树控件绑定背景:我们想在树控件中显示销售客户的层级列表,这个销售客户的分层是这样的,先按“大区”,再按“省份”,最后到“客户”我们在数据库中建立了三个表,字段如下:大区表:大区ID,大区名称省份表:省份ID,省份名称,所属大区客户表:客户ID,客户名称,所属省份这三个表互相建立了关系1、新建一个窗体,在窗体上放置两个控件,一个是Treeview,一个是Imagelist2、设置这两个控件的属性在这里和第一小时唯一的区别是我们在Imagelist控件的设置时,导入了两个图标,一个KEY为K1,一个为K2,原来树控件的Node图标是可以变化的,我们准备某个项没有选中时的图标是一个没有打开的文件夹,选中时是一个打开的文件夹,以区别。3、编写代码,如下:PrivateSubForm_Load()'*-----------------------------------------------------------------'*用数据库表(查询也一样)中数据填充树控件'*-----------------------------------------------------------------DimRecAsNewADODB.RecordsetDimstRecQLAsStringDimItemAsIntegerDimiAsIntegerDimnodindexAsNode'*-----------------------------------------------------------------'*定义各类'*-----------------------------------------------------------------'设置最顶级的"爷"'*---------------------------Setnodindex=TreeView.Nodes.Add(,,"爷","销售客户","K1","K2")nodindex.Sorted=True'*-----------------------------------------------------------------'*这里的设置跟第一小时里基本是一样的'*但最后多了一个"K2"的参数,"K1"代表的是未被选中时的图标,"K2"代表是被选中后的图标'*仔细观察一下,你会发现选中和没选中的图标是不一样的,一个是一个文件夹,一个是一个打开的文件夹'*-----------------------------------------------------------------'设置第二级"父"'*---------------------------Rec.Open"大区表",CurrentProject.Connection,adOpenKeyset,adLockOptimistic,adCmdTableDirectFori=0ToRec.RecordCount-1Setnodindex=TreeView.Nodes.Add("爷",tvwChild,"父"&Rec.Fields("大区ID"),Rec.Fields("大区名称"),"K1","K2")nodindex.Sorted=TrueRec.MoveNextNextRec.Close'*-----------------------------------------------------------------'*第一行意思是打开一个表去寻找数据(查询也是可以的)'*关键在与Add参数的变化'*大家看第三个参数,在第一小时里,这里是"父1",这里用Rec.Fields("大区ID")来代替"1",意思是用表的编号来代替手工编号'*第四个参数也是一样,直接用表中的名称字段来取代原来我们手工的命名'*-----------------------------------------------------------------'设置第三级"子"'*---------------------------Rec.Open"省份表",CurrentProject.Connection,adOpenKeyset,adLockOptimistic,adCmdTableDirectFori=0ToRec.RecordCount-1Setnodindex=TreeView.Nodes.Add("父"&Rec.Fields("所属大区"),tvwChild,"子"&Rec.Fields("省份ID"),Rec.Fields("省份名称"),"K1","K2")nodindex.Sorted=TrueRec.MoveNextNextRec.Close'*-----------------------------------------------------------------'*不用再解释了吧'*要注意的是,定义第一个参数的时候,不是用"父"&Rec.Fields("大区ID"),而是用"父"&Rec.Fields("所属大区")'*这个意思是:用省份表中关联大区表的字段,而不是直接用大区表的ID'*-----------------------------------------------------------------'设置第四级"孙"'*---------------------------Rec.Open"客户表",CurrentProject.Connection,adOpenKeyset,adLockOptimistic,adCmdTableDirectFori=0ToRec.RecordCount-1Setnodindex=TreeView.Nodes.Add("子"&Rec.Fields("所属省份"),tvwChild,"孙"&Rec.Fields("客户ID"),Rec.Fields("客户名称"),"K1","K2")nodindu∙高级会员3#第三小时<>第三小时:将树控件与窗体结合
我们做树控件,当然不可能单单为了显示层级数据,我们希望跟窗体结合,当我们单击树控件中的某个客户时,窗体上能相应的转到这个客户的资料。

<>目的:将树控件与窗体结合
1、我们还是沿用第二个小时里的例子,但在建立窗体时,将窗体的数据来源设为“客户表”,并在窗体中放置好客户表的字段。
2、写入如下代码:

<>;PrivateSubTreeview_NodeClick(ByValNodeAsObject)
'*-----------------------------------------------------------------
'*树控件的鼠标点击事件为NodeClick
'*-----------------------------------------------------------------
DimstrAsString
'*-----------------------------------------------------------------
'*定义一个筛选
'*-----------------------------------------------------------------
IfNode.Text="销售客户"OrNode.KeyLike"父*"OrNode.KeyLike"子*"Then
str=""
'*-----------------------------------------------------------------
'*在第一小时里,我们说了Node有三个东西,图标,文本,索引值
'*文本就是text,索引值就是Key
'这里将就是说当我们点击"爷","父"或"子"层的时候,不筛选窗体
'*这个条件也可写成:IfNode.key="爷"OrNode.KeyLike"父*"OrNode.KeyLike"子*"Then
'*-----------------------------------------------------------------
Else
str="[客户名称]='"&Node.Text&"'"
EndIf
Me.Form.FilterOn=True
Me.Form.Filter=str
'*按指定的条件进行窗体筛选
EndSub

<;P>明白了吧,所谓结合窗体,实际不过是进行窗体筛选而已。第三小时结束(5分钟也够了,哈哈)

<;P>学习很有乐趣,但写文章却很无聊,如果你通过这篇文章学会了树控件的基本使用,跟个贴吧,也好让我有点成就感。

<;P>附上附件


本文档为【三小时掌握TREEVIEW控件】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_654168
暂无简介~
格式:doc
大小:37KB
软件:Word
页数:6
分类:
上传时间:2022-08-05
浏览量:4