您现在的位置:首页 >> 网络教学 >> 常用控件 >> 内容

列表框和组合框

时间:2009-6-19 9:24:23 点击:7501

7.2列表框和组合框

利用列表框(ListBox)可以选择所需要的选项,达到与用户对话的目的,如果有较多的选项而不能一次全部显示时,VB会自动加上流离颠沛滚动条,其最主要的特点是只能从其中选择但不能直接修改其中的内容。而组合框是组合了文本框和列表框的特性而形成的一种控件,组合框在列表框中列出了可供用户选择的选项,当用户选定某项后,该项内容自动装入文本框中。当列表框中没有所需项目时,除了下拉式列表框之外都允许在文本框中用键盘输入,但输入的内容不能自动添加到列表框中。列表框和组合框的默认名称分别为ListxCombox(x123…)

7.2.1列表框的属性

列表框用于在很多选项中做出选择。在列表框中可以有很多个选项供选择,用户可以单击某一项选择自己所需要的选项。如果选项太多,超出了列表框设计时的长度或宽度,则VB6.0会自动给列表框加上垂直滚动条或水平滚动条。为了能正确操作,列表框的高度应不少于3行。

1.属性

列表框所支持的标准属性包括CaptionEnabledFontBoldFontItalicFontNameFontSizeFontUnderlineHeightLeftNameTopVisible以及Width等。此外,它还具有以下特殊属性:

(1)Columns属性。该属性用来确定列表框的列数,当该属性设置为0(默认)时,所有的选项呈单列显示。如果该属性设置为1,则列表框呈多行多列显示;如果大于1且小于列表框中的选项数,则列表框呈单行多列显示。默认设置为0时,如果列表项的总高度超过了列表框的高度,将在列表框的右边加上一个垂直滚动条,可以通过它上下移动列表。当Columns的设置值不为0时,如果选项的总高度超过了列表框的高度,将把部分列表项移到右边一列或几列显示。当各列的宽度之和超过列表框宽度时,将自动在底部增加一个水平滚动条。

(2)List属性。该属性用来列出选项的内容,是一个字符型数组,List属性保存了列表框中所有值的数组,可以通过下标访问数组中的值(下标值从0开始)

格式:s=[列表框.]List(下标)

例如,s=List1.List(6)

将列出列表框List17项的内容。

也可以改变数组中以有的值。

格式:[列表框.]List(下标)=s

例如:List1.List(3)=”Hello”

将把列表框List14项的内容设置为”Hello”

(3)ListCount属性。该属性列出列表框中选项的数量。列表框中选项的排列从0开始,最后一项的序号为ListCount-1。例如,执行x=List1.ListCount后,x的值为列表框List1的选项总数。

(4)ListIndex属性。该属性设置的是已选中的选项的位置。选项的位置由索引值指定,第一项索引值为0,第二项索引值为1,依次类推。如果没有选中任何项,ListIndex的值将设置为-1。在程序中设置ListIndex后,被选中的条目将反相显示。

(5)MultiSelect属性。该属性用来设置一次可以选择的表项数。对于一个标准列表框,该属性的设置决定了用户是否可以在列表框中选择多个表项。MultiSelect属性可以设置成为以下3种值。

0-None:每次只能选择一项,如果选择另一项则会取消前一项的选择。

1-Simple:可以同时选择多项,后续的选择不会取消前面所选择的项,可以用鼠标或空格键选择。

2-Extended:可以选择指定范围内的选项。其方法是:单击所要选择范围的第一项,然后按住【Shift】键,不要松开,并单击所要选择范围的最后一项。如果按住【Ctrl】键并单击列表框中的选项,则可以不连续的选择多个选项。

如果选择了多个选项,ListIndexText的属性只表示最后一次的选择值。为了确定所要选择的表项,必须检查Selected属性的每个元素。

(6)Selected属性。该属性只能在程序中设置或引用,该属性实际上是一个数组,各个元素的值为TrueFalse,每个元素与列表框相对应。当元素的值为True时,表明选择了该项;如果为False,则表示未选择。用下面的语句可以检查指定的表项是否被选择:

格式:列表框名. Selected(索引值)

“索引值”从0开始,它实际上是数组的下标。上面的语句返回一个逻辑值(TrueFalse),用下面的语句可以选择指定的选项或取消以选择的选项:

格式:列表框名. Selected(索引值) = True|False

(7)SelCount属性。如果MultiSelect属性设置为1(simple)2(Extended),则该属性用于读取列表框中所选项目的数目。通常它与Selected一起使用,以处理控件中的所选项目。

(8)Sorted属性。该属性用来确定列表框上的选项是否按字母,数字升序排列。如果Sorted属性设置为True,则表示按字母或数字升序排列;如果把它设置为False(默认),则选项将按加入列表的先后次序排列。

(9)Style属性。这个属性用来确定控件的外观,只能在设计时确定。其取值可以设置为0(标准形式)1(复选框形式)

(10)Text属性。该属性值为最后依次选中的选项的文本,不能直接修改Text属性。

2.列表框的事件

列表框接受Click DblClick事件,但有时不用编写Click事件过程代码,而是当单击一个命令按钮或发生DblClick事件时,读取Text属性。

3.列表框的方法

列表框可以使用AddItem,ClearRemoveItem等方法,用来在运行期间修改列表框的内容。

(1)AddItem。该方法用来在列表框中插入一个选项。

格式:列表框. AddItem项目字符串[,索引值]

AddItem方法把项目字符串的文本内容放入列表框中。如果省略索引值,则文本被放在列表框的尾部。索引值可以指定插入项在列表框中的位置,表中的项目从0开始记数,索引值不能大于表中项数-1。该方法只能单个地向列表框中添加项目。

(2)Clear。该方法用来清除列表框中的全部选项。

格式:列表框. Clear

执行Clear方法后,ListCount属性重新设置为0

(3)RemoveItem 。该方法用来删除列表框中指定的选项。

格式:列表框. RemoveItem 索引值

RemoveItem方法从列表框中删除以索引值为地址的选项,该方法每次只能删除一个选项。假定在窗体上添加了一个列表框List1和两个命令按钮Command1, Command2,则下面的过程:

Private Sub Command1_Click()

    List1.AddItem “Test”, 0

End Sub

Private Sub Command2_Click()

    List1. RemoveItem, 0

End Sub

可以分别向列表框中增加和删除选项。单击命令按钮Command1,可以把字符串“Test”添加到列表框List1的开头;而单击命令按钮Command2,则可以删除列表框开头的一项。

7.2.2 组合框

组合框(ComboBox)是综合列表框和文本框的特性组合成的控件。也就是说,组合框是一种独立的控件,它兼有列表框和文本框的功能。它可以像文本框一样,让用户通过鼠标选择需要的选项,也可以像文本框一样,用输入的方式选择。

1.组合框属性

列表框的属性基本上都可以用于组合框,此外它还有一些自己的属性。

(1)Style属性。这是组合框的一个重要属性,其可取值为012,它决定了组合框3种不同的类型。

Style属性设置为0时,组合框称为“下拉组合框”(DropDown ComboBox),它看起来像一个下拉列表框,但可以输入文本或从下拉列表中选择列表项。单击右端的箭头可以显示下拉选项,并允许用户选择,可识别DropDown事件。在VB6.0的属性窗口中有类似的操作。

Style属性设置为1的组合框称为“简单组合框”(Simple Com Box),它由可以输入中文的编辑区和一个标准列表框组。列表不是下拉式的,而一直显示在屏幕上,可以选择列表项,也可以在编辑区中输入文本,它识别DblClick事件。在运行时,如果项目的总高度高于组合框的高度,则自动加上垂直滚动条。

Style属性设置为2的组合框称为“下拉式列表框”(DropDown ListBox)。和下拉式组合框一样,它的右端也有一个箭头,可供“拉下”或“收起”列表框,可以选择列表框中的选项。它不能识别DblClickChange事件,但可以识别DropDown事件。

7-5展示了3种不同类型的组合框,从左致右依次为下拉组合框,简单组合框和下拉式列表组合框。从上面看,第一种和第三种只能从下拉列表框中选择列表项,不允许输入文本。

(2)Text属性。该属性值是用户所选的列表项目中的文本或直接从编辑区输入的文本。

2.组合框事件

前面在介绍属性时,已谈到部分组合框事件。实际上,组合框所响应的事件依赖于其Style属性。例如,只有简单组合框(Style属性值为1)才能接收DblClick事件,其他两种组合框可以接收Click事件和DropDown事件。对于下拉式组合框(属性Style的值为0)和简单组合框,可以在编辑区输入文本,当输入文本时可以接收Change事件。一般情况下,用户选择项目之后,只需要读取组合框的Text属性。

当用户单击组合框中向下的箭头时,将触发DropDown事件,该事件实际上对应于向下箭头的单击(Click)事件。

3.组合框方法

前面介绍的AddItemClearRemoveItem方法也适用于组合框,其用法在列表框中讲述相同。

7.2设计一个窗口界面如图7-4所示的应用程序,窗体上各控件的属性设置如表7-4所示。

事件过程如下:

Private Sub Form_Load()

' Combo1中的选项已在设计状态通过List属性设计

Combo1.Enabled = False

Text1.Enabled = False

Option1.Enabled = False

Option2.Enabled = False

End Sub

Private Sub Check1_Click()

Combo1.Enabled = Not Combo1.Enabled

Text1.Enabled = Not Text1.Enabled

End Sub

Private Sub Check2_Click()

Option1.Enabled = Not Option1.Enabled

Option2.Enabled = Not Option2.Enabled

End Sub

Private Sub Combo1_LostFocus()

' 当焦点离开组合框时组合框的LostFocus事件被触发,利用该事件过程将用户输入的计算机品牌添加到组合框中。

' 添加到组合框的新项目不能永久保存,下次运行该程序中看不到上次保存的项目。

flag = False

For i = 0 To Combo1.ListCount - 1

If Combo1.List(i) = Combo1.Text Then

flag = True

Exit For

End If

Next

If Not flag Then

Combo1.AddItem Combo1.Text

End If

End Sub

Private Sub Command1_Click()

If Check1.Value = 1 Then

List1.AddItem Combo1

List1.AddItem Text1

End If

If Check2.Value = 1 Then

If Option1 Then

List1.AddItem "Windows 2000"

Else

List1.AddItem "Windows 98"

End If

End If

End Sub

程序运行后,效果如图7-5所示。

作者:Admin  
相关文章
  • 没有相关文章
本类推荐
  • 没有
本类固顶
  • 没有
  • VB程序设计学习网站(赣南师范学院) © 2008 版权所有 All Rights Reserved.
  • 地址:江西省赣州市经济技术开发区 赣南师范学院数学与计算机科学学院 邮政编码:341000
    Email:ZQ188@163.com 技术支持QQ:87319633 移ICP备10086号
  • GnsySjxy! V2.4