《列表框、组合框和数组》由会员分享,可在线阅读,更多相关《列表框、组合框和数组(35页珍藏版)》请在金锄头文库上搜索。
1、第8章 列表框、组合框和数组,(时间:2次课,4学时),第8章 列表框、组合框和数组,教学提示:在第5章中,介绍了单选按钮、复选按钮和框架并介绍了分支程序设计的基本思想。本章将继续介绍提供用户选择的控件列表框和组合框。还将介绍数组的使用,在学习中要注意列表框和组合框的特殊属性和数组的定义和使用。 教学目标:掌握用Dim语句定义数组,数组元素的输入、输出和引用;掌握控件数组的建立和事件过程的编写;掌握列表框和组合框的主要属性和使用方法。,第8章 列表框、组合框和数组,8.1 认识列表框和组合框 8.2 列表框 8.3 组合框 8.4 数组 8.5 综合运用,8.1 认识列表框和组合框,列表框和组
2、合框都能提供一个项目列表,用户可以从中选择一项或多项。 例8.1 组队程序 设计一个窗体,在窗体上添加一个组合框、一个列表框、两个标签和4个命令按钮。运行程序时,用户可从后备队员中选择队员。单击【参赛】,被选中的队员从后备队员列表中移动到参赛队员列表中。若从参赛队员列表中选择队员后,单击【后备】,则被选中的队员从参赛队员列表中移动到后备队员列表中。若双击列表中某个队员,则被双击的运动员同样也会从一个列表移动到另一个列表中。若有新队员加入,可在后备队员文本框中输入姓名,单击【增加】,输入队员的姓名将增加到后备队员列表中。,8.2 列表框,列表框控件在工具箱的图标是 。 列表框控件提供一个项目列表
3、。用户可以从中选择一项或多项。如果列表中的项目太多,超过列表框设计高度,列表框会自动出现滚动条。在列表框中,可以单列显示。,列表框,8.2.1 列表框属性 8.2.2 列表框的事件和方法,8.2.1 列表框属性,1. Text属性 返回列表框被选择的列表项目,是字符串类型。在列表框中该属性为只读属性,界面设计阶段不能修改。 2. ListIndex属性 设置或返回列表框被选择的列表项的序号,是整型。在列表框中第一个列表项序号为0,第二个列表项序号为1,最后一个列表项目序号为List Count-1。,3. List Count属性 返回列表框列表项的个数,是整型。 4. List属性 字符串数
4、组,每个元素都是列表框的一个列表项内容。在界面设计时,利用List属性可以输入列表项目,在代码中可以引用该数组。,5. Sorted属性 确定列表项是否按升序排列,是逻辑型,通过【属性】窗格设置。设置为True表示按升序排列列表项目,否则按增加先后次序排列。 6. MultiSelect属性 确定是否一次可选择多个列表项,是整型,通过【属性】窗格设置。可取值0、1和2,0表示每次只能选择一项;1表示简单多项选择,一次可以选择多项;2表示扩展多项选择,按下Ctrl 或Shift键+鼠标单击,一次可以选择多项。,7. Selected属性 在支持多项选择中,判断被选择的列表项。是逻辑型数组,在设计
5、阶段不可用,当数组元素为True时,表示该项被选择,为False时,表示该项未被选择。 8. 名称和其他属性 列表框的隐含名称是List1、List2等。和列表框位置有关的属性有Height、Left、Top和Width;和列表框行为有关的主要属性有Enabled、Visible、TabIndex等。另外,列表框有与Font相关的属性,还有设置颜色的属性。,例8.2 增加列表项 设计一个窗体,在窗体上添加一个列表框、一个文本框和两个命令按钮。运行程序时,在文本框中输入内容。单击【增加】,程序判断列表框的所有列表项,若没有新输入的内容,则输入的内容增加到列表框中。一次可增加一个列表项,可增加多次
6、。单击【退出】结束程序执行。,例8.3 删除多项选择 设计一个窗体,在窗体上画一个列表框和两个命令按钮,运行程序时,在列表框中按“书柜”、“衣柜”、“书桌”、“椅子”、“沙发”、“床铺”的顺序输入列表项。一次选择多个列表项,然后单击【删除】删除选择的所有列表项。单击【退出】结束程序执行。,8.2.2 列表框的事件和方法,1. 列表框的事件 列表框控接收Click事件、DblClick事件和LostFocus等事件,但大多数程序编写DblClick事件过程。 2. 列表框的方法 列表框可以使用的方法有AddItem、RemoveItem和Clear。利用它们可以在程序运行期间修改列表框的内容。,
7、AddItem方法,向列表框添加一个新项目,格式是: 列表框名.AddItem 字符串,序号 其中: 列表框名是列表框的名称 字符串是要添加到列表框中新项目,RemoveItem方法,从列表框中删除一个项目。格式是: 列表框名.RemoveItem 序号 其中: 序号是要删除项目的顺序号,其值为整型,范围从0到ListCount -1。 Clear方法,删除列表框中的所有项目。格式是: 列表框名.Clear,8.3 组 合 框,组合框在工具箱的图标是 。 组合框控件和列表框一样提供一个项目列表。用户可以从中选择一项或多项。在组合框中,有自己的文本框。 组合框是具有文本框控件与列表框控件特性的控
8、件。组合框系统的默认名称为Combo1、Combo2等。,组合框本身包含有一个文本框和一个列表框,用户可以直接从列表框中选定项目,也可以在文本框中输入项目。组合框有3种样式,改变组合框的Style属性值,可得到对应的样式,8.3.1 组合框属性,1. Style属性 当Style设置为0时(默认样式),是下拉式组合框。单击右侧的箭头时打开选项列表,可从打开的列表中选择列表项目,选择的列表项目将显示在文本框中。也可直接在文本框中输入文本,在DropDown等事件过程中把文本框内容增加到组合框中。 当Style设置为1时,是简单组合框。这时文本框右侧无箭头按钮,它看起来象一个文本框和一个标准列表框
9、的结合,列表项始终显示在列表框中。可以从列表中选择项,也可以直接在文本框中输入文本。 当Style设置为2时,是下拉式列表框,它与下拉式组合框相似。单击右侧的箭头时打开选项列表,可从打开的列表中选择列表项目,选择的列表项目将显示在文本框中;通过输入可以快速选择文本。与下拉式组合框不同的是:它不能在文本框中输入新的内容。,2. Text属性 返回列表框被选择的列表项目,是字符串类型。在Style为0或1时可以键入文本。 组合框的(名称)属性系统默认为Combo1,Combo2等。在列表框中的属性同样适于组合框。,8.3.2 组合框的事件和方法,组合框的Style取值不同,能响应的事件也有差异,只
10、有简单组合框能响应DblClick事件,下拉式组合框和下拉式列表框能响应DropDown,所有组合框都能响应Click事件。 在列表框中可以使用的方法同样适于组合框。,8.4 数 组,在VB中,数组的含义更为广泛,它不仅象其他计算机语言一样允许一个数组中的元素应属于同一种类型,也允许一个变体数组中含有不同类型的元素。为了很好管理控件的属性,VB有些控件的属性使用了数组。为了处理功能相近的控件,VB 还提供了控件数组。,数 组,8.4.1 控件数组 8.4.2 在程序中定义和使用数组 8.4.3 可调数组 8.4.4 可变类型数组,8.4.1 控件数组,控件数组由一组相同类型的控件组成。这些控件
11、具有相同的名称,具有很多相同的属性。数组中的每个控件都有唯一的索引号,即下标,下标值由Index属性指定,第1个控件数组元素的下标为0,第2个控件数组元素的下标为1等。它是创建控件数组时系统自动按顺序赋给每个控件数组元素的,程序通过索引值来区别控件数组中的元素。,(1) 创建控件数组中的第一个控件,并进行属性设置。 (2) 右击控件数组中的第一个控件,从弹出的快捷菜单中选择【复制】。 (3) 右击窗体,从弹出的快捷菜单中选择【粘贴】。 (4) 系统弹出对话框询问“已有此控件,是否创建控件数组?”,单击【是(Y)】 以后,可以进行若干次粘贴,系统不再询问。,例8.4 计算器 设计一个窗体,在窗体
12、上设计由十个数字按钮、4个运算符按钮一个【=】按钮和一个标签,模拟计算器能完成一步计算功能。,8.4.2 在程序中定义和使用数组,在计算机中数组占据一块内存区域,数组名是这个区域的名称,下标可标识数组元素在该区域的位置。数组应遵循先定义后使用的原则。定义数组的目的是为其留出所需空间。这一点和控件属性中使用到的数组不同,控件属性中用到的数组是系统定义的。 定义数组的一般格式: Dim 数组名(第一维说明,第二维说明 ) As 类型 第一维说明、第二维说明等分别是每个下标的允许范围,如: 下标下界 To 下标上界 也可以是每维下标上界。在默认情况下,数组下标的下界为0 。,例如: Dim Labc
13、(1 To 20) As Integer 定义一维数组Labc是整型数组,含有20个元素,从Labc (1)到Labc (20)。 Dim Names(11) As String 定义一维数组Names,Names是可以保存12个元素的数组,Names(0)是 第一个元素,Names(11)是最后一个元素,每个元素都是字符串类型。 Dim Mna(-10 To 10) As Integer 定义一维数组Mna是整型数组,含有21个元素,从Mna (-10)到Mna (10)。 Dim Kxyz%(10), Sop#(60) 定义一维数组Kxyz是整型数组,含有11个元素,从Kxyz(0)到Kx
14、yz(10)。 定义一维数组Sop是双精度型数组,含有61个元素,从Sop(0)到Sop (60)。 Dim Xyz(10, 10) As Single 定义二维数组Xyz是单精度型数组,含有121个元素, 从Xyz (0,0)到Xyz (10,10)。,除使用Dim语句指定下界,还可以使用Option Base 语句指定下界。 Option Base 语句格式为: Option Base 下界值 例如: Option Base 1 Dim K1(30) As Integer 定义一维数组K1是整型数组,含有30个元素,从K1(1)到k1(30),例8.5 计算平均工资 设计一个窗体,在窗体上
15、添加两个命令按钮。运行程序时,单击【计算】,弹出输入对话框,用于输入公司每个员工的工资,当输入“-1”时,计算并输出员工人数和平均工资,假定公司员工人数小于100人。 例8.6 输出杨辉三角形 设计一个窗体,在窗体上添加两个命令按钮。运行程序时,单击【输出】,弹出输入对话框,用于输入要输出杨辉三角形的行数,假定要输入的数小于11。,8.4.3 可调数组,定义数组的目的是为了预留连续的存储空间,但有时数组的大小只有运行程序时才能确定,定义“足够大”的数组虽然可以解决这个问题,但浪费了很多存储空间。在例8.5中处理gz数组VB的编译程序将预留了100个存储空间,但实际可能只使用其中一部分。为此,V
16、B 6.0提供了可调数组用来解决这个问题,可调数组也称动态数组。可调数组的长度可以在运行程序时改变。 定义可调数组的方法是 先用Dim语句(或Private和Public),但不要指定下标范围。 再用ReDim语句指定数组的准确尺寸。,例8.7 计算前三名职工工资 设计一个窗体,在窗体上添加两个命令按钮。运行程序时,单击【计算】,弹出输入对话框,要求输入员工人数。以后要求输入公司每个员工的工资,输入结束后计算并输出员工人数和平均工资,然后再输出工资最高的前三名职工工资。,8.4.4 可变类型数组,当一个数组被说明成变体类型的数组,它的每个元素也是变体类型的,因此,可以存放各种类型的数据,例如: Option Base 1 Private Sub Form_Click() Dim an(6) For i = 1 To 3 an(i) = “Name“ + Str(i) Next i For i = 4 To 6 an(i) = Int(Rnd * 10000) / 100 Next i Fo