聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> VB控件 treeview用法详解

VB控件 treeview用法详解

时间:2020-06-10 11:21:53    下载该word文档

VB TreeView控件使用详解

 (2012-06-16 15:08:16)

标签: 

分类: 

第一小时:学习直接用代码将数据填充到树控件中。

为什么要先学习直接用代码将数据填充到树控件中因为这种方法是最简单的,代码也最容易理解,学习树控件,先将这个学会,已经掌握了一半,所以先不要急着想怎么将表中的数据填充到树控件中,在第一小时里,树控件和表完全没有关系。

目的:我们要在树控件中建立如下的一个3层级关系

水果

|

|__苹果

| |__红富士

| |__国光

|

|__葡萄

|__红提子

|__青提子

解释:水果包含2种,一种是苹果,一种是葡萄,苹果又包含2种,一种是红富士,一种是国光,葡萄也如此。

在这里:“爷”是水果,“父”是苹果,葡萄,“子”是红富士,国光,红提子,青提子。概括如下:

爷(只能有一个):水果

父(这里有2个):父1:苹果;父2:葡萄

子(这里有4个):子1:红富士(父1苹果的子);子2:国光(父1苹果的子);子3:红提子(父2葡萄的子);子4:青提子(父2葡萄的子)

1、新建一个窗体,在窗体上放置两个控件,一个是Treeview,一个是Imagelist

如何找到这两个控件

Treeview控件在“工具箱”的榔头加扳手图标(其他控件)中选“Microsoft Treeview Control,Version "

Imagelist控件在“工具箱”的榔头加扳手图标(其他控件)中选“Microsoft Imagelist Control,Version "

Treeview控件大家都明白干什么用的,Imagelist控件是干什么用呢原来这个控件是放图标用的,如果你想在树控件中显示图标的,这个图标都将储存在ImageList控件中。

2、设置这两个控件的属性

首先要讲清楚控件的属性设置有2种,一种是设置这个控件在ACCESS中的属性,比如名称等。一种是设置这个控件本身的属性。要设置这个控件在ACCESS中的属性,选中控件后按鼠标右键选“属性”就可以了。跟我们平时设置文本框什么的一样。要设置这个控件本身的属性,只要双击这个控件就可以了。

1)设置Treeview控件在ACCESS中的名称属性,将名称设置为“Treeview"

2)设置Imagelist控件在ACCESS中的名称属性,将名称设置为“Image"

2)设置Imagelist控件本身的属性,双击控件后,在弹出来的设置框中选“Images",单击“Insert Picture"按钮,在你电脑中选择你需要的图标。在“Key:”栏中填入“K1”。其他默认设置不用改。

3)设置Treeview控件本身的属性,双击控件后,在弹出来的设置框中选“General”,在这个选项面版中有很多项设置,大多数是设置树控件的显示格式,你自己慢慢研究。这里我们将第一项“Style"选7,在第五项“Imagelist"选项中将我们放置的Imagelist控件“Image"选上。这项设置就将图标和树控件联系了起来。

3、写代码将数据填充到树控件中

代码写在哪里我们希望窗体一打开,数据就自动填充在树控件中,所以这个代码就写在窗体的加载事件中,代码及解释如下:

VBScript code复制代码

Private Sub Form_Load()

    '* -----------------------------------------------------------------

    '*用代码将数据填充到树控件中

    '* -----------------------------------------------------------------

    Dim Nodeindex As Node

    '*------------------------------------------------------------------

    '*解释:定义Node

    '*Node是树控件的对象

    '*每个Node都有三个东西,图标,文本,索引值

    '*图标和文本都是实际显示出来的,索引值是隐含的

    '*------------------------------------------------------------------

    '设置最顶级的“爷”:

    '* ---------------------------

    Set Nodeindex = , "爷", "水果", "K1")

     = True

    '*------------------------------------------------------------------

    '*树控件填充数据的方法是

    '*括号内是Add方法的参数

    '*在这里“爷”是索引值,“水果”是将显示的文本,“K1”是图标的索引值

    '*Sorted是指Node的排序,True就是指采用排序,默认是按拼音

    '*第一,二个参数是空的

    '*具体的参数设置以后你可以慢慢详细研究

    '*------------------------------------------------------------------

    '设置第二级“父”

    '* ---------------------------

    Set Nodeindex = "爷", tvwChild, "父1", "苹果", "K1")

     = True

    Set Nodeindex = "爷", tvwChild, "父2", "葡萄", "K1")

     = True

    '*------------------------------------------------------------------

    '*第一个参数“爷”是指这一层对应上层“爷”的

    '*tvwChild参数是规定格式,指相对来说,这一层是爷的子层

    '*“父1”是索引值,因为“父”有2个,而索引值是唯一的,所以要编号,用“父1”“父2”分开

    '*“苹果”“葡萄”是要显示的文本,K1是显示图标的索引值

    '*现在知道为什么在“爷”层设置时,第一,第二个参数是空的,因为这是最顶层

    '*------------------------------------------------------------------

    '设置第三级“子”

    '* ---------------------------

    Set Nodeindex = "父1", tvwChild, "子1", "红富士", "K1")

     = True

    Set Nodeindex = "父1", tvwChild, "子2", "国光", "K1")

     = True

    Set Nodeindex = "父2", tvwChild, "子3", "红提子", "K1")

     = True

    Set Nodeindex = "父2", tvwChild, "子4", "青提子", "K1")

     = True

    '*------------------------------------------------------------------

    '*第一个参数“父1,2”是指这一层对应上层“父”的,但要注意对应的是“父1”还是“父2”

    '*tvwChild参数是规定格式,指相对来说,这一层是父的子层

    '*“子1”是索引值,因为“子”有4个,而索引值是唯一的,所以要编号,用“1,2,3,4”分开

    '*“红富士”等是要显示的文本,K1是显示图标的索引值

    '*------------------------------------------------------------------

End Sub

就这么多代码,总共十几行,就可以在树控件中显示数据了,很简单吧。第一小时结束。

第二小时:学习怎样将树控件和数据库中的数据绑起来

在第一小时里,我们学习了怎样直接用代码填充树控件,但在实际使用中,这种方法的应用性不大,只有将树控件与数据库中的数据结合起来,才能有真正的应用。其实绑定数据库的方法和直接用代码填充是大同小异的,我们要做的只是将Add的参数里,原来我们手工输入的变换一下,让程序知道去数据库中找数据。

目的:将数据库中的数据与树控件绑定

背景:我们想在树控件中显示销售客户的层级列表,这个销售客户的分层是这样的,先按“大区”,再按“省份”,最后到“客户”我们在数据库中建立了三个表,字段如下:

大区表:大区ID,大区名称

省份表:省份ID,省份名称,所属大区

客户表:客户ID,客户名称,所属省份

这三个表互相建立了关系

1、新建一个窗体,在窗体上放置两个控件,一个是Treeview,一个是Imagelist

2、设置这两个控件的属性在这里和第一小时唯一的区别是我们在Imagelist控件的设置时,导入了两个图标,一个KEY为K1,一个为K2,原来树控件的Node图标是可以变化的,我们准备某个项没有选中时的图标是一个没有打开的文件夹,选中时是一个打开的文件夹,以区别。

3、编写代码,如下:

VBScript code复制代码

Private Sub Form_Load()

    '* -----------------------------------------------------------------

    '* 用数据库表(查询也一样)中数据填充树控件

    '* -----------------------------------------------------------------

    Dim Rec As New

    Dim stRecQL As String

    Dim Item As Integer

    Dim i As Integer

    Dim nodindex As Node

    '* -----------------------------------------------------------------

    '* 定义各类

    '* -----------------------------------------------------------------

    '设置最顶级的"爷"

    '* ---------------------------

    Set nodindex = , "爷", "销售客户", "K1", "K2")

     = True

    '* -----------------------------------------------------------------

    '*这里的设置跟第一小时里基本是一样的

    '*但最后多了一个"K2"的参数,"K1"代表的是未被选中时的图标,"K2"代表是被选中后的图标

    '*仔细观察一下,你会发现选中和没选中的图标是不一样的,一个是一个文件夹,一个是一个打开的文件夹

    '* -----------------------------------------------------------------

    '设置第二级"父"

    '* ---------------------------

     "大区表", , adOpenKeyset, adLockOptimistic, adCmdTableDirect

    For i = 0 To - 1

        Set nodindex = "爷", tvwChild, "父" & ("大区ID"), ("大区名称"), "K1", "K2")

         = True

        

    Next

    

    '* -----------------------------------------------------------------

    '*第一行意思是打开一个表去寻找数据(查询也是可以的)

    '*关键在与Add参数的变化

    '*大家看第三个参数,在第一小时里,这里是"父1",这里用("大区ID")来代替"1",意思是用表的编号来代替手工编号

    '*第四个参数也是一样,直接用表中的名称字段来取代原来我们手工的命名

    '* -----------------------------------------------------------------

    '设置第三级"子"

    '* ---------------------------

     "省份表", , adOpenKeyset, adLockOptimistic, adCmdTableDirect

    For i = 0 To - 1

        Set nodindex = "父" & ("所属大区"), tvwChild, "子" & ("省份ID"), ("省份名称"), "K1", "K2")

         = True

        

    Next

    

    '* -----------------------------------------------------------------

    '*不用再解释了吧

    '*要注意的是,定义第一个参数的时候,不是用"父" & ("大区ID"),而是用"父" & ("所属大区")

    '*这个意思是:用省份表中关联大区表的字段,而不是直接用大区表的ID

    '* -----------------------------------------------------------------

    '设置第四级"孙"

    '* ---------------------------

     "客户表", , adOpenKeyset, adLockOptimistic, adCmdTableDirect

    For i = 0 To - 1

        Set nodindex = "子" & ("所属省份"), tvwChild, "孙" & ("客户ID"), ("客户名称"), "K1", "K2")

         = True

        

    Next

    

    '* -----------------------------------------------------------------

    '*到此你应该完全明白了

    '* -----------------------------------------------------------------

End Sub

第二小时结束

第三小时:将树控件与窗体结合

我们做树控件,当然不可能单单为了显示层级数据,我们希望跟窗体结合,当我们单击树控件中的某个客户时,窗体上能相应的转到这个客户的资料。

目的:将树控件与窗体结合

1、我们还是沿用第二个小时里的例子,但在建立窗体时,将窗体的数据来源设为“客户表”,并在窗体中放置好客户表的字段。

2、写入如下代码:

VBScript code复制代码

Private Sub Treeview_NodeClick(ByVal Node As Object)

    '* -----------------------------------------------------------------

    '*树控件的鼠标点击事件为NodeClick

    '* -----------------------------------------------------------------

    Dim str As String

    '* -----------------------------------------------------------------

    '*定义一个筛选

    '* -----------------------------------------------------------------

    If = "销售客户" Or Like "父*" Or Like "子*" Then

        str = ""

        '* -----------------------------------------------------------------

        '*在第一小时里,我们说了Node有三个东西,图标,文本,索引值

        '*文本就是text,索引值就是Key

        '这里将就是说当我们点击"爷","父"或"子"层的时候,不筛选窗体

        '*这个条件也可写成:If = "爷" Or Like "父*" Or Like "子*" Then

        '* -----------------------------------------------------------------

    Else

        str = "[客户名称]='" & & "'"

    End If

     = True

     = str

    '*按指定的条件进行窗体筛选

End Sub

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

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

这里有个源码实例,大家可以参考下。

免费下载 Word文档免费下载: VB控件 treeview用法详解

  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服