在程序中设置 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)自动显示此人的相关信息。
源代码如下:
Private Sub LstName_Click() If LstName.Selected(0) = True Then LblShow.Caption = "马拉多纳是阿根廷的球星" ElseIf LstName.Selected(1) = True Then LblShow.Caption = "贝肯鲍尔是德国的球星" ElseIf LstName.Selected(2) = True Then LblShow.Caption = "罗纳尔多是巴西的球星" Else LblShow.Caption = "贝克汉姆是英国的球星" End If End Sub |
本程序是根据用户选择的不同,在标签按件中显示不同的信息;另外,我们用到了前面学到的 If ···Then··· ElseIf··· End If 语法。
8、SelCount(选中项目数量):
只有当 MultiSelect 属性值为 1 或 2 时,本属性才起作用,用来读取列表框中所选项目的数目,通常与 Selected 一起使用,以处理控件中的所选项目。
二、列表框控件的主要事件:
列表框控件主要接收 Click 与 DblClick ,如例一。
三、列表框控件的方法:
1、增加项目:AddItem
用 AddItem 可以为列表框增加项目,代码规则如下:
列表框名称.AddItem 欲增项目[,索引值]
其中,索引值是可选项,是指欲增项目放到原列表框中的第几项,如放在第三项,那么索引值是 2 ,放在第五项,索引值则是 4 。
假设我们要在如图十这样的程序中增加项目:LstName.AddItem "郝海东",4
2、清除所有:Clear
用 Clear 可以清除列表框中所有的内容,代码如下:
列表框名称.Clear
3、删除选项:RemoveItem
此方法可以删除列表框中指定的项目,代码如下:
列表框名称.RemoveItem 索引值
其中,索引值是必须的,表示欲删除哪一个项目。
同样如图十的程序,假设我们要删除第三个项目,代码如下:
LstName.RemoveItem 2
联想:对于任意一个列表框,要删除已经选中的项目,代码如下:
列表框名称.RemoveItem 列表框名称.ListIndex
比如:LstName.RemoveItem LstName.ListIndex