当前位置:编程学习 > VB >>

VB 神童教程第二章第七节——列表框控件

答案:    Visual Basic 提供了列表框控件(ListBox)以供用户进行多个项目的选择。在工具箱面板上,列表框控件的图标如图一所示:


图一


    默认的列表框控件名为 ListX(X为阿拉伯数字 1、2、3,等等),规则的命名方式为:LstX(X为用户自定义的名字,如 LstName、LstUser,等等)。

    一、列表框控件的主要属性:

    列表框中可以有多个项目供选择,用户通过单击某一项选择自己所需要的项目,如果项目太多,超出了列表框设计时的长度,则自动增加竖向滚动条,如图二:


图二


    除了一些常见的诸如 Font 、Height、Left、Width、Enabled、Name 等属性外,列表框还有一些特殊的属性:

    1、List(列表)属性:

    List 是列表框最重要的属性之一,其作用是罗列或设置表项中的内容。可以在界面设置时直接输入内容,如图三:


图三


    在程序运行时,列表框中所有的选项,都可以通过 List(下标值) 的形式表示。比如列表框中的第一项,用 List(0)表示,列表框中的第二项,用 List(1)表示,列表框中的第十项,用 List(9)表示,以此类推。

    大家注意,列表框中的第一项,是 List(0) ,而不是 List(1) 。

    <1>、List() 属性的使用是非常灵活的,比如我们要从如图二的列表框(Lst1)中取出第三项内容,可以用下面的代码做到:A$ = Lst1.List(2)

    其中,A 是一个变量;$ 指明了这个变量的类型:字符串型;这句话的意思是:将 Lst1 列表框中第三项(List(2))取出来然后赋值给字符串变量 A 。

    象上面这种赋值办法,在 VB 中是非常普遍的,又如以前我们学到的:

    LblShow.Caption = "Visual Basic",这句话是指将 Visual Basic 这个字符串赋值给 LblShow 标签控件并作为其标题。

    紧接上面的内容,假设我们用一个标签显示出刚才取出的表项:

    LblShow.Caption = A$

    那么显示的结果正是我们取出的选项。

    可见,取出某个列表框中的某一表项并将其赋值给某个变量,代码如下:

    字符串变量 = 列表框名称.List(X) ,其中,X 是下标。

    <2>、通过 List() 改变原有表项:假设我们要将如图二的列表框中第三项内容改为“跟我学 VB”,只需输入下面的代码即可:

    Lst1.List(2) = "跟我学 VB"

    上句话的意思是将“跟我学 VB”字符串赋值给 Lst1 并作为其第三项的内容。

    结果如图四:


图四


    可见,要修改某个列表框中某一选项:

    列表框名称.List(X) = "欲修改成的内容" ,其中,X 是下标。

    2、ListCount 属性:

    本属性返回列表框表项数量的数值,只能在程序运行时起作用。比如:一个有着四种选项的列表框,那么 ListCount 就为 4 ;一个列表框有五个选项,那么 ListCount 就为 5 。

    返回一个列表框的表项数量值并将其赋值给某个变量,代码如下:

    数值型变量 = 列表框名称.ListCount

    比如要返回图二列表框的 ListCount:

    X% = Lst1.ListCount ,其中,X 是变量,% 表示X是整数类型的变量。

    3、ListIndex(索引)属性:

    本属性用来返回或设置控件中当前选择项目的索引号,只能在程序运行时使用。第一个选项的索引号是 0 ,第二个选项的索引号是 1 ,第三个选项的索引号是 2 ,依此类推,ListCount 始终比最大的 ListIndex 值大 1 。当列表框没有选择项目时, ListIndex 值为 -1 。

    在程序中设置 ListIndex 后,被选中的项目呈反相显示,如图五:


图五


    在列表框控件的所有属性中,本属性是非常重要的,因为一个列表,事先你并不知道用户将要选择哪一条项目,这时,只有根据 ListIndex 返回的数值,我们才能让程序针对用户的选择做出适当的反应。

    返回 ListIndex 的代码如下:

    X% = 列表框名称.ListIndex

    联想:根据前面的知识我们知道,要取出第三项内容,代码如下:

    A$ = Lst1.List(2)

    假设现在选中的是第三项,但我们事先不知道用户要选择这一项,那么又应该如何访问这第三项呢?

    代码如下:A$ = Lst1.List(Lst1.ListIndex) 此时,Lst1.ListIndex 等同于 2 。仔细想一想,为何要如此书写?

    4、Columns(列)属性:

    本属性用来确定列表框的列数,当值为 0 时,所有项目呈单列显示;当值为 1 或者大于 1 ,项目呈多列显示。Columns 属性只能在界面设置时指定。如图六:


图六


    默认状态时,如果项目的总高度大于列表框的高度,那么列表框右边会自动增加一个垂直滚动条,用来上下移动列表框。

    5、MultiSelect(多重选择)属性:

    本属性决定了选项框中的内容是否可以进行多重选择,只能在界面设置时指定,程序运行时不能予以修改。如图七:


图七


    MultiSelect 共有三个值:0 ,不允许多项选择,如果选择了一项就不能选择其他项;1 ,允许多重选择,但功能不如 2 ,可以用鼠标或空格选择;2 ,功能最强大的多重选择,可以结合 Shift 键或 Ctrl 键完成多个表项的多重选择。方法是:单击所要选择的范围的第一项,然后按住 Shift 键,再单击选择范围最后一项。

    6、Style(类型)属性:

    本属性决定了列表框的外观,共有两个值:1 ,Standard ,即为标准型,如图八:


图八


    2 ,CheckBox ,复选框型,如图九:


图九


    本属性只能在界面设置时确定。

    7、Selected(选中)属性:

    本属性返回或设置在列表框控件中某项目是否选中的状态。选中时,值为 True ;未被选中,值为 False 。

    代码规则如下: 列表框名称.Selected(索引值) = True/False

    注意,索引号其实是项目的下标值,如果是第三项,那么索引值是 2 ,如果是第十项,那么索引值是 9 ,以此类推。

    例一:

    有如图十这样一个应用程序:


图十


    列表框(LstName)中是人物的名称,用户选择不同的名字,下面的标签(LblShow)自动显示此人的相关信息。

    源代码如下:



    本程序是根据用户选择的不同,在标签按件中显示不同的信息;另外,我们用到了前面学到的 If ···Then··· ElseIf··· End If 语法。

    8、SelCount(选中项目数量):

    只有当 MultiSelect 属性值为 1 或 2 时,本属性才起作用,用来读取列表框中所选项目的数目,通常与 Selected 一起使用,以处理控件中的所选项目。

    二、列表框控件的主要事件:

    列表框控件主要接收 Click 与 DblClick ,如例一。

    三、列表框控件的方法:

    1、增加项目:AddItem

    用 AddItem 可以为列表框增加项目,代码规则如下:

    列表框名称.AddItem 欲增项目[,索引值]

    其中,索引值是可选项,是指欲增项目放到原列表框中的

上一个:VB 神童教程第二章第八节——组合框控件
下一个:VB 神童教程第二章第六节——综合示例二

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,