《第5章-数组ppt课件(全)》由会员分享,可在线阅读,更多相关《第5章-数组ppt课件(全)(64页珍藏版)》请在金锄头文库上搜索。
1、第第5章章 数组数组 在用计算机解决实际问题时,经常会遇在用计算机解决实际问题时,经常会遇到对批量数据进行处理的情况,如为了统到对批量数据进行处理的情况,如为了统计计100个学生的成绩,按简单变量来处理会个学生的成绩,按简单变量来处理会很不方便,由此引入了数组,极大的提高很不方便,由此引入了数组,极大的提高了此类问题的处理效率。本章以数组对批了此类问题的处理效率。本章以数组对批量数据的处理为例,介绍数组的概念及其量数据的处理为例,介绍数组的概念及其应用、部分常用控件列表框和组合框,及应用、部分常用控件列表框和组合框,及直线和形状控件。直线和形状控件。【主要内容】主要内容】 掌握数组的基本概念及
2、其使用掌握数组的基本概念及其使用掌握数组的基本概念及其使用掌握数组的基本概念及其使用 掌握控件掌握控件掌握控件掌握控件listBox,ComBoxlistBox,ComBox的常用属性及的常用属性及的常用属性及的常用属性及其方法的使用其方法的使用其方法的使用其方法的使用 掌握控件掌握控件掌握控件掌握控件Line,ShapeLine,Shape的常用属性及基本的常用属性及基本的常用属性及基本的常用属性及基本应用。应用。应用。应用。5.1 引例引例5.2 数组数组5.3 控件数组控件数组5.4 直线直线(Line)与形状与形状(Shape)5.5 列表框列表框(ListBox)与组合框与组合框(C
3、omboBox)本章小结本章小结 【例例5.1】设设计计一一个个用用于于对对学学生生成成绩绩排排名名的的应应用用程序。程序运行界面如下图程序。程序运行界面如下图5.1(a)所示。)所示。 5.1 引例引例图图5.1(a) 【例【例5.1】运行结果】运行结果操作步骤:操作步骤:(1)(1)设计用户界面设计用户界面设计用户界面设计用户界面 根据界面设计要求,创建如图根据界面设计要求,创建如图根据界面设计要求,创建如图根据界面设计要求,创建如图5.15.1(b b)所示用户界)所示用户界)所示用户界)所示用户界面。将所需控件:两个标签(面。将所需控件:两个标签(面。将所需控件:两个标签(面。将所需控
4、件:两个标签(LabelLabel), ,两个列表框两个列表框两个列表框两个列表框(ListboxListbox)和一个命令按钮()和一个命令按钮()和一个命令按钮()和一个命令按钮(commandcommand)分别放)分别放)分别放)分别放到适当位置,进行相应的属性设置。具体控件属到适当位置,进行相应的属性设置。具体控件属到适当位置,进行相应的属性设置。具体控件属到适当位置,进行相应的属性设置。具体控件属性设置如下表性设置如下表性设置如下表性设置如下表5.15.1所示。所示。所示。所示。 图图5.1(b) 【例【例5.1】用户界面】用户界面控件名称控件名称控件名称控件名称(namename
5、)属性属性属性属性属性属性属性属性值值值值窗体(窗体(窗体(窗体(Form1Form1)captioncaption学生成学生成学生成学生成绩绩绩绩排名排名排名排名标签标签标签标签(Label1Label1)captioncaption排名前数据排名前数据排名前数据排名前数据标签标签标签标签(Label2Label2)captioncaption排序后名次排序后名次排序后名次排序后名次命令按命令按命令按命令按钮钮钮钮(Command1)(Command1)captioncaption输输输输入数据并排入数据并排入数据并排入数据并排名名名名(2) (2) 代码编写代码编写代码编写代码编写分析:设
6、置好所需界面后编写相应的事件过程,本例主要事件过分析:设置好所需界面后编写相应的事件过程,本例主要事件过分析:设置好所需界面后编写相应的事件过程,本例主要事件过分析:设置好所需界面后编写相应的事件过程,本例主要事件过程是程是程是程是Command1Command1的的的的ClickClick事件。该事件要求完成:事件。该事件要求完成:事件。该事件要求完成:事件。该事件要求完成: 通过输入对话框输入各学生的姓名和成绩,并把当前输入通过输入对话框输入各学生的姓名和成绩,并把当前输入通过输入对话框输入各学生的姓名和成绩,并把当前输入通过输入对话框输入各学生的姓名和成绩,并把当前输入的数据显示在左列表
7、框以便查对,输入完毕后,开始对输入的的数据显示在左列表框以便查对,输入完毕后,开始对输入的的数据显示在左列表框以便查对,输入完毕后,开始对输入的的数据显示在左列表框以便查对,输入完毕后,开始对输入的数据按成绩进行排序,最后把排序后的数据显示在右列表框内。数据按成绩进行排序,最后把排序后的数据显示在右列表框内。数据按成绩进行排序,最后把排序后的数据显示在右列表框内。数据按成绩进行排序,最后把排序后的数据显示在右列表框内。 此算法的关键在于如何排序,排序的方法有多种,有选择此算法的关键在于如何排序,排序的方法有多种,有选择此算法的关键在于如何排序,排序的方法有多种,有选择此算法的关键在于如何排序,
8、排序的方法有多种,有选择法,冒泡排序法等。法,冒泡排序法等。法,冒泡排序法等。法,冒泡排序法等。 对对对对n n个数个数个数个数a(1)a(n),a(1)a(n),采用选择排序法的算法是:采用选择排序法的算法是:采用选择排序法的算法是:采用选择排序法的算法是:n n个数个数个数个数a(1)a(n),a(1)a(n),采用选择排序法的算法是:采用选择排序法的算法是:采用选择排序法的算法是:采用选择排序法的算法是: 先在先在先在先在n n个数中选最小数,放在数组的第个数中选最小数,放在数组的第个数中选最小数,放在数组的第个数中选最小数,放在数组的第1 1个元素中,个元素中,个元素中,个元素中,即:
9、取第即:取第即:取第即:取第1 1个数,与后面个数,与后面个数,与后面个数,与后面n-1n-1(即(即(即(即2 2与与与与n n)个数逐个)个数逐个)个数逐个)个数逐个比较。若第比较。若第比较。若第比较。若第1 1个数大,则个数大,则个数大,则个数大,则a(1)a(1)与参与比较的数组元与参与比较的数组元与参与比较的数组元与参与比较的数组元素中的值进行互换,再将互换后的第素中的值进行互换,再将互换后的第素中的值进行互换,再将互换后的第素中的值进行互换,再将互换后的第1 1个数与剩下个数与剩下个数与剩下个数与剩下的数据比较,直到最后。的数据比较,直到最后。的数据比较,直到最后。的数据比较,直到
10、最后。 再在第再在第再在第再在第2 2至至至至n n个元素中,选最小数,放在第个元素中,选最小数,放在第个元素中,选最小数,放在第个元素中,选最小数,放在第2 2个数个数个数个数组元素中。组元素中。组元素中。组元素中。取第取第取第取第2 2个数,与后面个数,与后面个数,与后面个数,与后面n-2n-2(即(即(即(即3 3到到到到n n)个数逐个比较。)个数逐个比较。)个数逐个比较。)个数逐个比较。若第若第若第若第2 2个数大,则互换,直到最后。个数大,则互换,直到最后。个数大,则互换,直到最后。个数大,则互换,直到最后。 重复以上步骤,直至在最后两个数中选取最小数,重复以上步骤,直至在最后两个
11、数中选取最小数,重复以上步骤,直至在最后两个数中选取最小数,重复以上步骤,直至在最后两个数中选取最小数,放在第放在第放在第放在第n-1n-1数组元素中。数组元素中。数组元素中。数组元素中。 最后第最后第最后第最后第n n个元素已是最大数了。个元素已是最大数了。个元素已是最大数了。个元素已是最大数了。 说明:说明:说明:说明:(1 1)在设计界面时除了以前用过的命令按钮和标签以)在设计界面时除了以前用过的命令按钮和标签以)在设计界面时除了以前用过的命令按钮和标签以)在设计界面时除了以前用过的命令按钮和标签以外,还用到列表框(外,还用到列表框(外,还用到列表框(外,还用到列表框(LlistboxL
12、listbox)控件)控件)控件)控件, ,这个控件及其这个控件及其这个控件及其这个控件及其相关的内容将在本章作详细的讲解。相关的内容将在本章作详细的讲解。相关的内容将在本章作详细的讲解。相关的内容将在本章作详细的讲解。(2 2)编写代码时出现的)编写代码时出现的)编写代码时出现的)编写代码时出现的 Dim Name(n) as string Dim Name(n) as string属于属于属于属于数组的定义,具体相关数组的使用及有关概念是本数组的定义,具体相关数组的使用及有关概念是本数组的定义,具体相关数组的使用及有关概念是本数组的定义,具体相关数组的使用及有关概念是本章的主要内容之一。章
13、的主要内容之一。章的主要内容之一。章的主要内容之一。(3 3)排序交换数据时,应让姓名和成绩同时交换,若)排序交换数据时,应让姓名和成绩同时交换,若)排序交换数据时,应让姓名和成绩同时交换,若)排序交换数据时,应让姓名和成绩同时交换,若只交换成绩,则最终结果会张冠李戴。只交换成绩,则最终结果会张冠李戴。只交换成绩,则最终结果会张冠李戴。只交换成绩,则最终结果会张冠李戴。【例例5.2】在在窗窗体体上上显显示示6种种可可以以使使用用的的形形状状,通通过过控控件件数数组组来来实实现现,运运行行结结果果如如图图5.2(a)所所示:示: 图图5.2(a) 【例【例5.2】运行结果】运行结果操作步骤如下:
14、操作步骤如下:(1 1)设计用户界面:)设计用户界面:)设计用户界面:)设计用户界面:根据程序的运行结果,用户可设计如图根据程序的运行结果,用户可设计如图根据程序的运行结果,用户可设计如图根据程序的运行结果,用户可设计如图5.25.2(b b)所示)所示)所示)所示的界面。的界面。的界面。的界面。图图5.2(b) 【例【例5.2】用户界面】用户界面设计过程如下:设计过程如下:设计过程如下:设计过程如下:先将控件先将控件先将控件先将控件ShapeShape放置在窗体上,并将其激活;放置在窗体上,并将其激活;放置在窗体上,并将其激活;放置在窗体上,并将其激活;执行复制命令(执行复制命令(执行复制命
15、令(执行复制命令(Ctrl+CCtrl+C),将该控件复制;),将该控件复制;),将该控件复制;),将该控件复制;执行粘贴命令执行粘贴命令执行粘贴命令执行粘贴命令(Ctrl+V)(Ctrl+V),将显示一个对话框,询,将显示一个对话框,询,将显示一个对话框,询,将显示一个对话框,询问问问问“ “已经有一个控件为已经有一个控件为已经有一个控件为已经有一个控件为Shape1Shape1,是否创建控,是否创建控,是否创建控,是否创建控件数组?件数组?件数组?件数组?” ”选择选择选择选择“ “是是是是” ”,窗体左上角将出现一个控件,它就,窗体左上角将出现一个控件,它就,窗体左上角将出现一个控件,它
16、就,窗体左上角将出现一个控件,它就是控件数组的第二个元素。是控件数组的第二个元素。是控件数组的第二个元素。是控件数组的第二个元素。执行粘切命令执行粘切命令执行粘切命令执行粘切命令(Ctrl+V)(Ctrl+V),建立控件数组的其它元,建立控件数组的其它元,建立控件数组的其它元,建立控件数组的其它元素。将其放在合适的位置并可用菜单栏的素。将其放在合适的位置并可用菜单栏的素。将其放在合适的位置并可用菜单栏的素。将其放在合适的位置并可用菜单栏的“ “格式格式格式格式” ”对其进行设置对其进行设置对其进行设置对其进行设置。(2 2)编写代码)编写代码)编写代码)编写代码 在窗体中只放置控件数组,而要输
17、入对应的在窗体中只放置控件数组,而要输入对应的在窗体中只放置控件数组,而要输入对应的在窗体中只放置控件数组,而要输入对应的标号需通过标号需通过标号需通过标号需通过printprint方法来实现,对于方法来实现,对于方法来实现,对于方法来实现,对于Shape1Shape1控件控件控件控件数组中各元素的形状由数组中各元素的形状由数组中各元素的形状由数组中各元素的形状由ShapeShape控件的控件的控件的控件的ShapeShape属性属性属性属性来完成,形状的填充由来完成,形状的填充由来完成,形状的填充由来完成,形状的填充由ShapeShape控件的控件的控件的控件的FillStyleFillSt
18、yle属属属属性实现,具体的过程如下:性实现,具体的过程如下:性实现,具体的过程如下:性实现,具体的过程如下:Private Sub Form_Click()Private Sub Form_Click()FontSize = 12FontSize = 12CurrentX = 280CurrentX = 280Print 0; Print 0; 设置形状对应的标号设置形状对应的标号设置形状对应的标号设置形状对应的标号For i = 1 To 5For i = 1 To 5 Shape1(i).Left = Shape1(i - 1).Left + 800 Shape1(i).Left = S
19、hape1(i - 1).Left + 800Shape1(i).Shape = i Shape1(i).Shape = i 设置设置设置设置shape1shape1控件数组的控件数组的控件数组的控件数组的形状形状形状形状Shape1(i).FillStyle = i + 2 Shape1(i).FillStyle = i + 2 填充填充填充填充shape1shape1控件数组控件数组控件数组控件数组Shape1(i).Visible = True Shape1(i).Visible = True 使得使得使得使得shape1(i)shape1(i)可见可见可见可见CurrentX = Cu
20、rrentX + 500CurrentX = CurrentX + 500Print i;Print i;Next iNext iEnd SubEnd Sub (3) (3) 运行程序,验证结果运行程序,验证结果运行程序,验证结果运行程序,验证结果 运行程序,单击窗体后出现如图运行程序,单击窗体后出现如图运行程序,单击窗体后出现如图运行程序,单击窗体后出现如图5.25.2(a a)所示结)所示结)所示结)所示结果。果。果。果。说明:说明:说明:说明:(1 1)在设计界面时使用了)在设计界面时使用了)在设计界面时使用了)在设计界面时使用了ShapeShape控件控件控件控件, ,这个控件及这个控
21、件及这个控件及这个控件及其相关的内容将在本章作详细的讲解。其相关的内容将在本章作详细的讲解。其相关的内容将在本章作详细的讲解。其相关的内容将在本章作详细的讲解。(2 2)编写代码使用了控件数组)编写代码使用了控件数组)编写代码使用了控件数组)编写代码使用了控件数组Shape1Shape1,注意掌握,注意掌握,注意掌握,注意掌握创建数组控件的方法的使用,对于建立控件数组创建数组控件的方法的使用,对于建立控件数组创建数组控件的方法的使用,对于建立控件数组创建数组控件的方法的使用,对于建立控件数组的另一方法将在后面介绍。的另一方法将在后面介绍。的另一方法将在后面介绍。的另一方法将在后面介绍。 VB
22、VB中将具有相同名字、不同下标值的一组变量称为中将具有相同名字、不同下标值的一组变量称为中将具有相同名字、不同下标值的一组变量称为中将具有相同名字、不同下标值的一组变量称为数组。数组中的每个变量称为数组元素或下标变量。可用数组。数组中的每个变量称为数组元素或下标变量。可用数组。数组中的每个变量称为数组元素或下标变量。可用数组。数组中的每个变量称为数组元素或下标变量。可用数组名和下标唯一地标识一个数组元素,如数组名和下标唯一地标识一个数组元素,如数组名和下标唯一地标识一个数组元素,如数组名和下标唯一地标识一个数组元素,如Score(5)Score(5)就表就表就表就表示数组名为示数组名为示数组名
23、为示数组名为ScoreScore的数组中下标为的数组中下标为的数组中下标为的数组中下标为5 5的数组元素。一个数的数组元素。一个数的数组元素。一个数的数组元素。一个数组如果只用一个下标就能确定一个数组元素在数组中的位组如果只用一个下标就能确定一个数组元素在数组中的位组如果只用一个下标就能确定一个数组元素在数组中的位组如果只用一个下标就能确定一个数组元素在数组中的位置,则称为一维数组,而由两个或多个下标所组成的数组置,则称为一维数组,而由两个或多个下标所组成的数组置,则称为一维数组,而由两个或多个下标所组成的数组置,则称为一维数组,而由两个或多个下标所组成的数组称为二维数组或多维数组。在其它语言
24、中数组用来存储相称为二维数组或多维数组。在其它语言中数组用来存储相称为二维数组或多维数组。在其它语言中数组用来存储相称为二维数组或多维数组。在其它语言中数组用来存储相同类型的数据,但是在同类型的数据,但是在同类型的数据,但是在同类型的数据,但是在VBVB中数组可用来存放不同类型的中数组可用来存放不同类型的中数组可用来存放不同类型的中数组可用来存放不同类型的数据。数据。数据。数据。 VB VB中的数组有两种,一种是静态数组;一种是动态中的数组有两种,一种是静态数组;一种是动态中的数组有两种,一种是静态数组;一种是动态中的数组有两种,一种是静态数组;一种是动态数组。数组必须先声明后使用。数组的声明
25、既可以在模块数组。数组必须先声明后使用。数组的声明既可以在模块数组。数组必须先声明后使用。数组的声明既可以在模块数组。数组必须先声明后使用。数组的声明既可以在模块中的声明,也可以在过程中声明。中的声明,也可以在过程中声明。中的声明,也可以在过程中声明。中的声明,也可以在过程中声明。5.2 数组数组5.2.1 静态数组静态数组5.2.2 动态数组动态数组5.2.3 数组的基本操作数组的基本操作5.2.4 For Each.Next 循环语句循环语句 以一个简单的应用程序的界面为例,介绍组以一个简单的应用程序的界面为例,介绍组以一个简单的应用程序的界面为例,介绍组以一个简单的应用程序的界面为例,介
26、绍组成菜单的基本元素(如所示)。菜单栏由多个菜成菜单的基本元素(如所示)。菜单栏由多个菜成菜单的基本元素(如所示)。菜单栏由多个菜成菜单的基本元素(如所示)。菜单栏由多个菜单名(也叫主菜单)组成,如单名(也叫主菜单)组成,如单名(也叫主菜单)组成,如单名(也叫主菜单)组成,如“ “文件文件文件文件” ”、“ “编辑编辑编辑编辑” ”等都是菜单标题。某一个菜单标题下拉出一个等都是菜单标题。某一个菜单标题下拉出一个等都是菜单标题。某一个菜单标题下拉出一个等都是菜单标题。某一个菜单标题下拉出一个菜单,包含一个或者多个菜单项,如图菜单,包含一个或者多个菜单项,如图菜单,包含一个或者多个菜单项,如图菜单
27、,包含一个或者多个菜单项,如图8.28.2 所示。所示。图图8.2 菜单的组成元素菜单的组成元素菜单标题菜单标题菜单栏菜单栏快捷键菜单项菜单项分隔线分隔线5.2.1 静态数组静态数组 所谓静态数组是指维数与下标的范围在声明所谓静态数组是指维数与下标的范围在声明所谓静态数组是指维数与下标的范围在声明所谓静态数组是指维数与下标的范围在声明时就已经确定了。声明静态数组使用的语句与声时就已经确定了。声明静态数组使用的语句与声时就已经确定了。声明静态数组使用的语句与声时就已经确定了。声明静态数组使用的语句与声明变量的语句类似。对于一维数组格式为:明变量的语句类似。对于一维数组格式为:明变量的语句类似。对
28、于一维数组格式为:明变量的语句类似。对于一维数组格式为:Dim Dim 数组名(下标说明)数组名(下标说明)数组名(下标说明)数组名(下标说明)As As 类型类型类型类型 ,数组名(下,数组名(下,数组名(下,数组名(下标说明)标说明)标说明)标说明) As As 类型类型类型类型.例如例如例如例如:Dim A1(5) as integerDim A1(5) as integer Dim A2(2 to 5) as integer Dim A2(2 to 5) as integer对于二维数组,格式为:对于二维数组,格式为:对于二维数组,格式为:对于二维数组,格式为:Dim Dim 数组名数
29、组名数组名数组名 ( (第一维下标上界,第二维下标上界第一维下标上界,第二维下标上界第一维下标上界,第二维下标上界第一维下标上界,第二维下标上界) as ) as 类型名称类型名称类型名称类型名称例如例如例如例如:DimDim B1(2,3) as integer B1(2,3) as integer定义了一个二维数组,数组名为定义了一个二维数组,数组名为定义了一个二维数组,数组名为定义了一个二维数组,数组名为B1B1,类型为,类型为,类型为,类型为integerinteger,该数组有,该数组有,该数组有,该数组有3 3行,行,行,行,4 4列,占列,占列,占列,占1212个整型变量的空间,
30、如个整型变量的空间,如个整型变量的空间,如个整型变量的空间,如下所示:下所示:下所示:下所示:B1B1(0 0,0 0)B1B1(0 0,1 1)B1B1(0 0,2 2)B1B1(0 0,3 3)第第第第0 0行行行行B1B1(1 1,0 0)B1B1(1 1,1 1)B1B1(1 1,2 2)B1B1(1 1,3 3)第第第第1 1行行行行B1B1(2 2,0 0)B1B1(2 2,1 1)B1B1(2 2,2 2)B1B1(2 2,3 3)第第第第2 2行行行行 说明:说明:说明:说明:(1 1)数组名的命名与变量名命名一致,但不能和简单)数组名的命名与变量名命名一致,但不能和简单)数组
31、名的命名与变量名命名一致,但不能和简单)数组名的命名与变量名命名一致,但不能和简单变量重名。变量重名。变量重名。变量重名。(2 2)下标说明又称维定义符,定义了这个维的大小。)下标说明又称维定义符,定义了这个维的大小。)下标说明又称维定义符,定义了这个维的大小。)下标说明又称维定义符,定义了这个维的大小。它有两种表示格式:它有两种表示格式:它有两种表示格式:它有两种表示格式: 或或或或 下界和上界必须使用数值型常量表达式,一般直接使用下界和上界必须使用数值型常量表达式,一般直接使用下界和上界必须使用数值型常量表达式,一般直接使用下界和上界必须使用数值型常量表达式,一般直接使用整型常数,它表示数
32、组元素的下标应在下界到上界的整型常数,它表示数组元素的下标应在下界到上界的整型常数,它表示数组元素的下标应在下界到上界的整型常数,它表示数组元素的下标应在下界到上界的范围内,超出范围将出现运行错误。范围内,超出范围将出现运行错误。范围内,超出范围将出现运行错误。范围内,超出范围将出现运行错误。 在缺省状态下,起始下标(下界值)为在缺省状态下,起始下标(下界值)为在缺省状态下,起始下标(下界值)为在缺省状态下,起始下标(下界值)为0 0,则,则,则,则Dim Dim Score(100),Score(100),表示声明了一个有表示声明了一个有表示声明了一个有表示声明了一个有101101个元表的数
33、组,个元表的数组,个元表的数组,个元表的数组,它的每个元素分别为它的每个元素分别为它的每个元素分别为它的每个元素分别为Score(0),Score(1)Score(0),Score(1)、Score(100)Score(100)。可以使用专门语句重新设置缺省下界。可以使用专门语句重新设置缺省下界。可以使用专门语句重新设置缺省下界。可以使用专门语句重新设置缺省下界值。格式为:值。格式为:值。格式为:值。格式为:Option Base 0|1Option Base 0|1。 例如:例如:例如:例如:Option Base 1 Option Base 1 表示将下界缺省值设置为表示将下界缺省值设置为
34、表示将下界缺省值设置为表示将下界缺省值设置为1 1(3 3)类型指的是数组元素的类型。省略类型则表示为)类型指的是数组元素的类型。省略类型则表示为)类型指的是数组元素的类型。省略类型则表示为)类型指的是数组元素的类型。省略类型则表示为VariantVariant类型。如类型。如类型。如类型。如 Const n=10 Const n=10 Dim Name1(n) As String, Score(n) As Single Dim Name1(n) As String, Score(n) As Single(4 4)其它属性)其它属性)其它属性)其它属性 帮助上下文:帮助上下文:帮助上下文:帮助
35、上下文:指定一个唯一的数值作为帮助文本的指定一个唯一的数值作为帮助文本的标识符,可根据该数值在帮助文件中查找适当的帮助主标识符,可根据该数值在帮助文件中查找适当的帮助主题。题。 协调位置:协调位置:协调位置:协调位置:与与OLEOLE功能有关,一般取功能有关,一般取0 0值值。 复选(复选(复选(复选(CheckedChecked)属性:)属性:)属性:)属性: 如果选中(如果选中( ),在初次打开菜单项时,该菜单项的左),在初次打开菜单项时,该菜单项的左边显示边显示“”“”。在菜单条上的第一级菜单不能使用该属。在菜单条上的第一级菜单不能使用该属性性。 有效(有效(有效(有效(EnabledE
36、nabled)属性:)属性:)属性:)属性: 如果选中(如果选中(如果选中(如果选中( ),在运行时以清晰的文字出现;未选中),在运行时以清晰的文字出现;未选中),在运行时以清晰的文字出现;未选中),在运行时以清晰的文字出现;未选中则在运行时以灰色的文字出现,不能使用该菜单项。则在运行时以灰色的文字出现,不能使用该菜单项。则在运行时以灰色的文字出现,不能使用该菜单项。则在运行时以灰色的文字出现,不能使用该菜单项。 显示窗口列表(显示窗口列表(显示窗口列表(显示窗口列表(WindowListWindowList)属性:)属性:)属性:)属性: 当菜单要包括一个打开的所有当菜单要包括一个打开的所有
37、MDIMDI(多文档界面)(多文档界面)子窗口的列表时,选中(子窗口的列表时,选中( )此项。)此项。5.2.2 动态数组动态数组 动态数组是指在声明数组时不指明下标的大小动态数组是指在声明数组时不指明下标的大小动态数组是指在声明数组时不指明下标的大小动态数组是指在声明数组时不指明下标的大小(省略括号中的下标),当需要时,再用(省略括号中的下标),当需要时,再用(省略括号中的下标),当需要时,再用(省略括号中的下标),当需要时,再用ReDimReDim语句重新定义其大小。建立动态数组的步骤如下:语句重新定义其大小。建立动态数组的步骤如下:语句重新定义其大小。建立动态数组的步骤如下:语句重新定义
38、其大小。建立动态数组的步骤如下:(1 1)声明动态数组)声明动态数组)声明动态数组)声明动态数组 声明动态数组的格式为:声明动态数组的格式为:声明动态数组的格式为:声明动态数组的格式为:Dim Dim 数组名数组名数组名数组名( ) As ( ) As 类型类型类型类型名名名名 上述数组定义的语句中,并没有标明数组的维数及上述数组定义的语句中,并没有标明数组的维数及上述数组定义的语句中,并没有标明数组的维数及上述数组定义的语句中,并没有标明数组的维数及数组元素的个数,事实上,它定义了一个空维数数组元素的个数,事实上,它定义了一个空维数数组元素的个数,事实上,它定义了一个空维数数组元素的个数,事
39、实上,它定义了一个空维数组,表明该数组是动态数组。组,表明该数组是动态数组。组,表明该数组是动态数组。组,表明该数组是动态数组。 (2 2)用)用)用)用ReDimReDim语句分配数组的实际元素个数语句分配数组的实际元素个数语句分配数组的实际元素个数语句分配数组的实际元素个数ReDimReDim语句是一个可执行语句,它只能出现在过程语句是一个可执行语句,它只能出现在过程语句是一个可执行语句,它只能出现在过程语句是一个可执行语句,它只能出现在过程中,其作用是为数组分配实际空间。格式为:中,其作用是为数组分配实际空间。格式为:中,其作用是为数组分配实际空间。格式为:中,其作用是为数组分配实际空间
40、。格式为:ReDim ReDim 数组名数组名数组名数组名( (下标说明下标说明下标说明下标说明 ,下标说明,下标说明,下标说明,下标说明 例如:例如:Dim n as integerDim n as integerDim Name1( ) as stringDim Name1( ) as stringn=val( ()n=val( ()ReDim Name1(n)ReDim Name1(n)说明:说明:上面代码首先定义了一个变量上面代码首先定义了一个变量n n,然后再定义了一个,然后再定义了一个空维数组空维数组NameName,n n的值通过的值通过inputboxinputbox输入,最后
41、输入,最后用用ReDimReDim语句为数组分配实际元素个数。语句为数组分配实际元素个数。 注意:注意: 可以多次使用可以多次使用ReDimReDim语句来改变数组的大小,但语句来改变数组的大小,但每次使用会使原数组的内容丢失,若想使原数据每次使用会使原数组的内容丢失,若想使原数据不丢失,则可在使用不丢失,则可在使用ReDimReDim语句中使用关键字语句中使用关键字PreservePreserve,格式为:,格式为:ReDim PreserveReDim Preserve数组名(下标说明数组名(下标说明 ,下标说明,下标说明 ) 不能用不能用ReDim PreserveReDim Prese
42、rve语句改变数组原有的数据语句改变数组原有的数据类型。类型。5.2.3 数组的基本操作数组的基本操作数组的基本操作包括数组元素的引用、初始化以及数组的基本操作包括数组元素的引用、初始化以及数组的基本操作包括数组元素的引用、初始化以及数组的基本操作包括数组元素的引用、初始化以及输入输出等。输入输出等。输入输出等。输入输出等。1 1 数组的引用数组的引用数组的引用数组的引用格式:数组名(下标,格式:数组名(下标,格式:数组名(下标,格式:数组名(下标, ,下标,下标,下标,下标.)声明数组和使用数组元素是不同的,在使用过程注声明数组和使用数组元素是不同的,在使用过程注声明数组和使用数组元素是不同
43、的,在使用过程注声明数组和使用数组元素是不同的,在使用过程注意区别。意区别。意区别。意区别。2 2 数组元素赋初值数组元素赋初值数组元素赋初值数组元素赋初值(1 1)利用循环结构)利用循环结构)利用循环结构)利用循环结构for i=1 to 10for i=1 to 10a(i)=0 aa(i)=0 a数组的每个元素值为数组的每个元素值为数组的每个元素值为数组的每个元素值为0 0next inext i(2 2)利用)利用ArrayArray函数函数Dim a as Variant, b as Variant,i%Dim a as Variant, b as Variant,i%a=Array
44、(1,2,3,4,5)a=Array(1,2,3,4,5)b=Array(“abc”,“dfd”,”dttt”)b=Array(“abc”,“dfd”,”dttt”)For i=0 to UBound(a)For i=0 to UBound(a) print a(i); “ ”; print a(i); “ ”;Next iNext i For i=0 to UBound(b) For i=0 to UBound(b) print b(i); “ ”; print b(i); “ ”;Next iNext i在使用在使用ArrayArray函数时应注意以下几点:函数时应注意以下几点: Arra
45、y Array函数用来为数组元素赋值,其格式为:函数用来为数组元素赋值,其格式为:函数用来为数组元素赋值,其格式为:函数用来为数组元素赋值,其格式为: 数组变量名数组变量名数组变量名数组变量名=Array=Array(数组元素值)(数组元素值)(数组元素值)(数组元素值)其中其中其中其中“ “数组变量名数组变量名数组变量名数组变量名” ”是预先定义的数组名,在是预先定义的数组名,在是预先定义的数组名,在是预先定义的数组名,在“ “数组变量名数组变量名数组变量名数组变量名” ”之之之之后没有括号。之所以称为后没有括号。之所以称为后没有括号。之所以称为后没有括号。之所以称为“ “数组变量数组变量数
46、组变量数组变量” ”,是因为它作为数组,是因为它作为数组,是因为它作为数组,是因为它作为数组使使使使用,但作为变量定义,它既没有维数,也没有上下界。用,但作为变量定义,它既没有维数,也没有上下界。用,但作为变量定义,它既没有维数,也没有上下界。用,但作为变量定义,它既没有维数,也没有上下界。“ “数数数数组变量值组变量值组变量值组变量值” ”是需要赋给数组各元素的值,各值之间以逗号分是需要赋给数组各元素的值,各值之间以逗号分是需要赋给数组各元素的值,各值之间以逗号分是需要赋给数组各元素的值,各值之间以逗号分开。开。开。开。 声明的数组变量可以通过以下方式定义:显式定义为声明的数组变量可以通过以
47、下方式定义:显式定义为声明的数组变量可以通过以下方式定义:显式定义为声明的数组变量可以通过以下方式定义:显式定义为VariantVariant类型,如:类型,如:类型,如:类型,如:Dim a as VariantDim a as Variant、在定义时不指明类、在定义时不指明类、在定义时不指明类、在定义时不指明类型,如:型,如:型,如:型,如: Dim a Dim a、不定义直接使用。、不定义直接使用。、不定义直接使用。、不定义直接使用。ArrayArray函数只适用于一维数组,即只能对一维数组进行初函数只适用于一维数组,即只能对一维数组进行初函数只适用于一维数组,即只能对一维数组进行初函
48、数只适用于一维数组,即只能对一维数组进行初始化,不能对二维或多维数组进行初始化。始化,不能对二维或多维数组进行初始化。始化,不能对二维或多维数组进行初始化。始化,不能对二维或多维数组进行初始化。数组的下界为零,上界由数组的下界为零,上界由数组的下界为零,上界由数组的下界为零,上界由ArrayArray函数括号内的参数个数决函数括号内的参数个数决函数括号内的参数个数决函数括号内的参数个数决定,也可通过函数定,也可通过函数定,也可通过函数定,也可通过函数UboundUbound获得(其中函数获得(其中函数获得(其中函数获得(其中函数UboundUbound用于用于用于用于返回数组指定维的上界,返回
49、数组指定维的上界,返回数组指定维的上界,返回数组指定维的上界,LboundLbound用于返回数组指定维的用于返回数组指定维的用于返回数组指定维的用于返回数组指定维的下界)。下界)。下界)。下界)。3 3 数组元素的输入数组元素的输入数组元素的输入数组元素的输入可以通过可以通过可以通过可以通过ForFor循环及循环及循环及循环及InputBoxInputBox函数输入。函数输入。函数输入。函数输入。4 4 数组元素的输出数组元素的输出数组元素的输出数组元素的输出数组元素的输出一般数组元素的输出一般数组元素的输出一般数组元素的输出一般forfor循环与循环与循环与循环与PrintPrint方法来
50、实现。方法来实现。方法来实现。方法来实现。5 5 举例举例举例举例【例【例【例【例5.35.3】编写程序,求一个】编写程序,求一个】编写程序,求一个】编写程序,求一个nmnm的矩阵中最大值元的矩阵中最大值元的矩阵中最大值元的矩阵中最大值元素所在行和列,并输出其值及行号和列号。素所在行和列,并输出其值及行号和列号。素所在行和列,并输出其值及行号和列号。素所在行和列,并输出其值及行号和列号。分析:分析:分析:分析: 该题目要求找到矩阵中最大值,可以使用一个二该题目要求找到矩阵中最大值,可以使用一个二该题目要求找到矩阵中最大值,可以使用一个二该题目要求找到矩阵中最大值,可以使用一个二维数组存放这个矩
51、阵,然后依次比较这个数组中维数组存放这个矩阵,然后依次比较这个数组中维数组存放这个矩阵,然后依次比较这个数组中维数组存放这个矩阵,然后依次比较这个数组中的各个元素的值,求得最大值。由于的各个元素的值,求得最大值。由于的各个元素的值,求得最大值。由于的各个元素的值,求得最大值。由于n,mn,m未知,未知,未知,未知,所以必须先通过所以必须先通过所以必须先通过所以必须先通过InputBoxInputBox函数输入其值。函数输入其值。函数输入其值。函数输入其值。 5.2.4 For Each.Next 循环语句循环语句 For Each.Next For Each.Next 循环语句与前面的循环语句
52、循环语句与前面的循环语句循环语句与前面的循环语句循环语句与前面的循环语句For.NextFor.Next类类类类似,都是用来执行指定重复次数的循环。但似,都是用来执行指定重复次数的循环。但似,都是用来执行指定重复次数的循环。但似,都是用来执行指定重复次数的循环。但For Each.NextFor Each.Next 语句专门用于数组或对象集合中的每一成员。语法格式为:语句专门用于数组或对象集合中的每一成员。语法格式为:语句专门用于数组或对象集合中的每一成员。语法格式为:语句专门用于数组或对象集合中的每一成员。语法格式为: For Each For Each 成员成员成员成员 In In 数组名
53、数组名数组名数组名 循环体循环体循环体循环体 Exit For Exit For Next Next 成员成员成员成员说明:说明:说明:说明:(1 1)“ “成员成员成员成员” ”是一个是一个是一个是一个Variant Variant 变量,它实际上代表数组中每变量,它实际上代表数组中每变量,它实际上代表数组中每变量,它实际上代表数组中每一个元素。一个元素。一个元素。一个元素。(2 2)本语句可以对数组元素进行读取、查询或显示,它所)本语句可以对数组元素进行读取、查询或显示,它所)本语句可以对数组元素进行读取、查询或显示,它所)本语句可以对数组元素进行读取、查询或显示,它所重复执行的次数由数组
54、中元素的个数确定。也就是说,分重复执行的次数由数组中元素的个数确定。也就是说,分重复执行的次数由数组中元素的个数确定。也就是说,分重复执行的次数由数组中元素的个数确定。也就是说,分别对数组中的第一个元素、第二个元素、别对数组中的第一个元素、第二个元素、别对数组中的第一个元素、第二个元素、别对数组中的第一个元素、第二个元素、最后一个元、最后一个元、最后一个元、最后一个元素,按序执行一次循环体。素,按序执行一次循环体。素,按序执行一次循环体。素,按序执行一次循环体。For Each.Next For Each.Next 循环语句在循环语句在循环语句在循环语句在不知道数组元素个数时非常有用。不知道数
55、组元素个数时非常有用。不知道数组元素个数时非常有用。不知道数组元素个数时非常有用。【例【例5.45.4】利用】利用For Each.Next For Each.Next 循环语句来求循环语句来求1+2+3+1001+2+3+100的值,运行结果如图的值,运行结果如图5.35.3所示。所示。Private Sub Form_Click()Private Sub Form_Click() Dim a(1 To 100) As Long, sum As Long Dim a(1 To 100) As Long, sum As Long Dim n As Integer Dim n As Intege
56、r sum = 0 sum = 0 For n = 1 To 100 For n = 1 To 100 为数组中的每个元素赋值为数组中的每个元素赋值 a(n) = n a(n) = n Next n Next n For Each x In a X For Each x In a X为为VariantVariant类型的变量,不必赋值类型的变量,不必赋值 sum = sum + x sum = sum + x Next x Next x Print 1+2+3+.+100=; sum Print 1+2+3+.+100=; sumEnd SubEnd Sub图5.3 【例5.4】的运行结果5.
57、3 控件数组控件数组 控件数组是由一组相同类型的控件组成,这些控件数组是由一组相同类型的控件组成,这些控件数组是由一组相同类型的控件组成,这些控件数组是由一组相同类型的控件组成,这些控件共用一个相同的控件名字,具有的相同属性设控件共用一个相同的控件名字,具有的相同属性设控件共用一个相同的控件名字,具有的相同属性设控件共用一个相同的控件名字,具有的相同属性设置。数组中的每个控件都有惟一的索引号(置。数组中的每个控件都有惟一的索引号(置。数组中的每个控件都有惟一的索引号(置。数组中的每个控件都有惟一的索引号(Index Index NumberNumber),即下标,其所有元素的),即下标,其所有
58、元素的),即下标,其所有元素的),即下标,其所有元素的NameName属性必属性必属性必属性必须相同。须相同。须相同。须相同。 控件数组适用于若干个控件执行操作相似的场控件数组适用于若干个控件执行操作相似的场控件数组适用于若干个控件执行操作相似的场控件数组适用于若干个控件执行操作相似的场合。控件数组共享同样的事件过程。如果某控件数合。控件数组共享同样的事件过程。如果某控件数合。控件数组共享同样的事件过程。如果某控件数合。控件数组共享同样的事件过程。如果某控件数组有组有组有组有4 4命令按钮,运行时不管单击哪个按钮,就会命令按钮,运行时不管单击哪个按钮,就会命令按钮,运行时不管单击哪个按钮,就会
59、命令按钮,运行时不管单击哪个按钮,就会调用同一个事件过程。调用同一个事件过程。调用同一个事件过程。调用同一个事件过程。【例【例5.5】编写一个运行界面如图】编写一个运行界面如图5.4所示的程所示的程序,其中序,其中“”,“”,“”,“”为命令按钮控件数组,为命令按钮控件数组,2个文本框用个文本框用于输入数据,当单击四个运算符按钮中的于输入数据,当单击四个运算符按钮中的任一个,则开始计算,并在任一个,则开始计算,并在Label1,Label2,Label3上分别显示运算符、等号上分别显示运算符、等号和运算结果。和运算结果。图5.4 【例5.5】运行结果操作步骤:操作步骤:操作步骤:操作步骤:(1
60、 1)用户界面设计)用户界面设计)用户界面设计)用户界面设计本例中本例中本例中本例中“ “” ”,“ “” ”,“”“”,“”“”为命令按钮控件数为命令按钮控件数为命令按钮控件数为命令按钮控件数组,其建立过程与【例组,其建立过程与【例组,其建立过程与【例组,其建立过程与【例5.25.2】不同,具体步骤如下:】不同,具体步骤如下:】不同,具体步骤如下:】不同,具体步骤如下: 在窗体上画出的所有的数组元素控件;在窗体上画出的所有的数组元素控件;在窗体上画出的所有的数组元素控件;在窗体上画出的所有的数组元素控件; 先选中其中一个控件,将其激活;先选中其中一个控件,将其激活;先选中其中一个控件,将其激
61、活;先选中其中一个控件,将其激活; 在属性窗口中选择在属性窗口中选择在属性窗口中选择在属性窗口中选择“ “名称名称名称名称” ”属性,并键入控件的名称属性,并键入控件的名称属性,并键入控件的名称属性,并键入控件的名称“cmdopt”“cmdopt”; 对每个要加到数组中的控件重复对每个要加到数组中的控件重复对每个要加到数组中的控件重复对每个要加到数组中的控件重复,步,键入与第步,键入与第步,键入与第步,键入与第步步步步中相同的名称。中相同的名称。中相同的名称。中相同的名称。当对第二个控件键入与第一个控件相同的名称后,当对第二个控件键入与第一个控件相同的名称后,当对第二个控件键入与第一个控件相同
62、的名称后,当对第二个控件键入与第一个控件相同的名称后,VBVB将显示将显示将显示将显示一个对话框,询问是否确实要建立控件数组。单击一个对话框,询问是否确实要建立控件数组。单击一个对话框,询问是否确实要建立控件数组。单击一个对话框,询问是否确实要建立控件数组。单击“ “是是是是” ”将将将将建建建建立控件数组(单击立控件数组(单击立控件数组(单击立控件数组(单击“ “否否否否” ”则放弃建立操作)。则放弃建立操作)。则放弃建立操作)。则放弃建立操作)。(2 2)编写代码)编写代码)编写代码)编写代码 具体的运算是通过命令按钮完成的,本题中的命令按钮是具体的运算是通过命令按钮完成的,本题中的命令按
63、钮是具体的运算是通过命令按钮完成的,本题中的命令按钮是具体的运算是通过命令按钮完成的,本题中的命令按钮是一控件数组,所以它们适用同一过程,具体的数组元素通过一控件数组,所以它们适用同一过程,具体的数组元素通过一控件数组,所以它们适用同一过程,具体的数组元素通过一控件数组,所以它们适用同一过程,具体的数组元素通过控件数组的控件数组的控件数组的控件数组的indexindex属性来区分,实现过程如下:属性来区分,实现过程如下:属性来区分,实现过程如下:属性来区分,实现过程如下: Private Sub cmdopt_Click(Index As Integer)Private Sub cmdopt_
64、Click(Index As Integer)Label1.Caption = cmdopt(Index).CaptionLabel1.Caption = cmdopt(Index).CaptionLabel2.Caption = =Label2.Caption = =Select Case Index Select Case Index 通过通过通过通过IndexIndex的值决定执行哪一个按钮操作的值决定执行哪一个按钮操作的值决定执行哪一个按钮操作的值决定执行哪一个按钮操作 Case 0 Case 0 Label3.Caption = Val(Text1.Text) + Val(Text2
65、.Text) Label3.Caption = Val(Text1.Text) + Val(Text2.Text) Case 1 Case 1 Label3.Caption = Val(Text1.Text) - Val(Text2.Text) Label3.Caption = Val(Text1.Text) - Val(Text2.Text) Case 2 Case 2 Label3.Caption = Val(Text1.Text) * Val(Text2.Text) Label3.Caption = Val(Text1.Text) * Val(Text2.Text) Case 3 Cas
66、e 3 If Val(Text2.Text) = 0 Then If Val(Text2.Text) = 0 Then MsgBox MsgBox 除法错误!除法错误!除法错误!除法错误!, vbCritical, , vbCritical, 出错出错出错出错 Else Else Label3.Caption = Val(Text1.Text) / Val(Text2.Text) Label3.Caption = Val(Text1.Text) / Val(Text2.Text) End If End IfEnd SelectEnd SelectEnd SubEnd Sub通过本例,希望读者注
67、意以下知识点:通过本例,希望读者注意以下知识点:通过本例,希望读者注意以下知识点:通过本例,希望读者注意以下知识点:控件数组是针对控件建立的,因此与普通数组的定义不一控件数组是针对控件建立的,因此与普通数组的定义不一控件数组是针对控件建立的,因此与普通数组的定义不一控件数组是针对控件建立的,因此与普通数组的定义不一样。可以通过两种方法来建立控件数组:一种是【例样。可以通过两种方法来建立控件数组:一种是【例样。可以通过两种方法来建立控件数组:一种是【例样。可以通过两种方法来建立控件数组:一种是【例5.55.5】也就是本例中使用的方法,还有一种是【例】也就是本例中使用的方法,还有一种是【例】也就是
68、本例中使用的方法,还有一种是【例】也就是本例中使用的方法,还有一种是【例5.25.2】中使】中使】中使】中使用的方法,注意具体方法的使用;用的方法,注意具体方法的使用;用的方法,注意具体方法的使用;用的方法,注意具体方法的使用;为了区分控件数组中的各个元素,为了区分控件数组中的各个元素,为了区分控件数组中的各个元素,为了区分控件数组中的各个元素,Visual BasicVisual Basic把下标值把下标值把下标值把下标值传送给一个过程。本例中,单击上述控件数组中的任意命传送给一个过程。本例中,单击上述控件数组中的任意命传送给一个过程。本例中,单击上述控件数组中的任意命传送给一个过程。本例中
69、,单击上述控件数组中的任意命令按钮时,调用的事件过程如下:令按钮时,调用的事件过程如下:令按钮时,调用的事件过程如下:令按钮时,调用的事件过程如下:Private Sub cmdopt_Click(Index As Integer)Private Sub cmdopt_Click(Index As Integer).End SubEnd Sub 通过按钮的属性通过按钮的属性通过按钮的属性通过按钮的属性IndexIndex确定用户按下了哪个按钮,这时在确定用户按下了哪个按钮,这时在确定用户按下了哪个按钮,这时在确定用户按下了哪个按钮,这时在对应的过程中进行有关的编程。对应的过程中进行有关的编程。
70、对应的过程中进行有关的编程。对应的过程中进行有关的编程。在编写代码的过程中,要对问题进行全面的考虑,如本例在编写代码的过程中,要对问题进行全面的考虑,如本例在编写代码的过程中,要对问题进行全面的考虑,如本例在编写代码的过程中,要对问题进行全面的考虑,如本例中,在进行除法运算时不能出现除数为中,在进行除法运算时不能出现除数为中,在进行除法运算时不能出现除数为中,在进行除法运算时不能出现除数为“0”“0”的操作,所的操作,所的操作,所的操作,所以对这种情况要做相应的处理。以对这种情况要做相应的处理。以对这种情况要做相应的处理。以对这种情况要做相应的处理。 5.4.1 直线控件(Line)5.4.2
71、 形状控件(Shape)5.4 直线直线(Line)与形状与形状(Shape)5.4.1 直线控件(直线控件(Line)1 1 、用途、用途、用途、用途 Line Line控件用于在窗体、框架或图片中画直线,主要用于修控件用于在窗体、框架或图片中画直线,主要用于修控件用于在窗体、框架或图片中画直线,主要用于修控件用于在窗体、框架或图片中画直线,主要用于修饰。通过设置饰。通过设置饰。通过设置饰。通过设置LineLine控件的属性,可以产生不同风格、不同颜控件的属性,可以产生不同风格、不同颜控件的属性,可以产生不同风格、不同颜控件的属性,可以产生不同风格、不同颜色的线条。色的线条。色的线条。色的线
72、条。2 2 、重要属性、重要属性、重要属性、重要属性(1 1)x1,x2,y1,y2x1,x2,y1,y2属性属性属性属性 用来设定一条直线的两个端点坐标,即(用来设定一条直线的两个端点坐标,即(用来设定一条直线的两个端点坐标,即(用来设定一条直线的两个端点坐标,即(x1,y1x1,y1)和)和)和)和(x2,y2x2,y2)。在运行时,可以通过改变)。在运行时,可以通过改变)。在运行时,可以通过改变)。在运行时,可以通过改变x1,x2,y1,y2x1,x2,y1,y2的属性来的属性来的属性来的属性来移动它或调整它的大小。移动它或调整它的大小。移动它或调整它的大小。移动它或调整它的大小。(2
73、2)BorderWidthBorderWidth属性属性属性属性 用来设定直线的粗细。其值是一个整数值,默认为用来设定直线的粗细。其值是一个整数值,默认为用来设定直线的粗细。其值是一个整数值,默认为用来设定直线的粗细。其值是一个整数值,默认为1.1.(3 3)BorderColorBorderColor属性属性用来设定直线的颜色,默认值为黑色。用来设定直线的颜色,默认值为黑色。(4 4)BorderStyleBorderStyle属性属性用来设定直线的类型。设置值所对应的线型如下【表用来设定直线的类型。设置值所对应的线型如下【表5.35.3】所示:所示:设设设设 置置置置 值值值值线线线线 型
74、型型型0-Transparent0-Transparent透明透明透明透明1-Solid1-Solid实线实线实线实线(缺省)(缺省)(缺省)(缺省)2-Dash2-Dash虚虚虚虚线线线线3-Dot3-Dot点点点点线线线线4- Dash-Dot4- Dash-Dot点划点划点划点划线线线线5-Dash-Dot -Dot5-Dash-Dot -Dot双点划双点划双点划双点划线线线线6-InsideSolid6-InsideSolid内收内收内收内收实线实线实线实线【例【例【例【例5.65.6】制作一个】制作一个】制作一个】制作一个5 5色闪烁彩灯。窗体中有五个直色闪烁彩灯。窗体中有五个直色闪
75、烁彩灯。窗体中有五个直色闪烁彩灯。窗体中有五个直线控件和线控件和线控件和线控件和1 1个计时器,界面设计如图个计时器,界面设计如图个计时器,界面设计如图个计时器,界面设计如图5.55.5(a a)所示。)所示。)所示。)所示。每一直线控件表示每一直线控件表示每一直线控件表示每一直线控件表示1 1盏灯。程序运行时,每盏灯分盏灯。程序运行时,每盏灯分盏灯。程序运行时,每盏灯分盏灯。程序运行时,每盏灯分别以各种颜色(红、蓝、黄、绿、青)交换变化,别以各种颜色(红、蓝、黄、绿、青)交换变化,别以各种颜色(红、蓝、黄、绿、青)交换变化,别以各种颜色(红、蓝、黄、绿、青)交换变化,形成闪烁效果。形成闪烁效
76、果。形成闪烁效果。形成闪烁效果。图5.5(a) 例5.6运行结果操作步骤:操作步骤:操作步骤:操作步骤:(1 1)设计用户界面)设计用户界面)设计用户界面)设计用户界面 设置初始界面如图设置初始界面如图设置初始界面如图设置初始界面如图5.55.5(b b)所示,将直线放置在)所示,将直线放置在)所示,将直线放置在)所示,将直线放置在合适的位置,调整其长度。设置窗体上所用的五条直合适的位置,调整其长度。设置窗体上所用的五条直合适的位置,调整其长度。设置窗体上所用的五条直合适的位置,调整其长度。设置窗体上所用的五条直线和线和线和线和1 1个个个个TimerTimer控件的属性。控件的属性。控件的属
77、性。控件的属性。 图5.5(b) 例5.6初始界面(2 2)编写代码)编写代码)编写代码)编写代码 分析:题目要求每一个控件表示分析:题目要求每一个控件表示分析:题目要求每一个控件表示分析:题目要求每一个控件表示1 1盏灯,程序运行时,盏灯,程序运行时,盏灯,程序运行时,盏灯,程序运行时,每盏灯分别以不同的颜色,在不同的时刻交换变化,这一功每盏灯分别以不同的颜色,在不同的时刻交换变化,这一功每盏灯分别以不同的颜色,在不同的时刻交换变化,这一功每盏灯分别以不同的颜色,在不同的时刻交换变化,这一功能通过能通过能通过能通过TimerTimer事件来实现。不同时间段的变化用全局变量控事件来实现。不同时
78、间段的变化用全局变量控事件来实现。不同时间段的变化用全局变量控事件来实现。不同时间段的变化用全局变量控制,显示不同的效果。制,显示不同的效果。制,显示不同的效果。制,显示不同的效果。(3 3)运行程序,验证运行结果)运行程序,验证运行结果)运行程序,验证运行结果)运行程序,验证运行结果 程序运行后,出现如图程序运行后,出现如图程序运行后,出现如图程序运行后,出现如图5.55.5(a a)所示运行界面,五个不)所示运行界面,五个不)所示运行界面,五个不)所示运行界面,五个不同颜色的线条从左至右在不同时刻与白色交替显示。(思考:同颜色的线条从左至右在不同时刻与白色交替显示。(思考:同颜色的线条从左
79、至右在不同时刻与白色交替显示。(思考:同颜色的线条从左至右在不同时刻与白色交替显示。(思考:如将本题目中的如将本题目中的如将本题目中的如将本题目中的5 5个个个个LineLine控件用一控件用一控件用一控件用一LineLine控件数组来实现,如控件数组来实现,如控件数组来实现,如控件数组来实现,如何操作何操作何操作何操作)说明:说明: 本题对线条颜色的设置是在程序运行时,通过使用本题对线条颜色的设置是在程序运行时,通过使用VBVB颜色常量来实现的。颜色常量来实现的。VBVB颜色符号常量与常量值的颜色符号常量与常量值的对应如表对应如表5.55.5所示。所示。 表表5.5 VB5.5 VB颜色常量
80、颜色常量常量常量值值说说明明VBBlackVBBlack&H0&H0黑黑VBRedVBRed&HFF&HFF红红VBGreenVBGreen&HFF00&HFF00绿绿VBYellowVBYellow&HFFFF&HFFFF黃黃VBBlueVBBlue&HFF0000&HFF0000蓝蓝VBMagentaVBMagenta&HFF00FF&HFF00FF紫紫红红VBCyanVBCyan&HFFFF00&HFFFF00青色青色VBWhiteVBWhite&HFFFFFF&HFFFFFF白白5.4.2 形状控件(形状控件(Shape)1 1 、用途、用途、用途、用途 ShapeShape控件可以用
81、来画矩形,正方形,椭圆,控件可以用来画矩形,正方形,椭圆,控件可以用来画矩形,正方形,椭圆,控件可以用来画矩形,正方形,椭圆,圆,圆角矩形及圆角正方形,默认为一个矩形,圆,圆角矩形及圆角正方形,默认为一个矩形,圆,圆角矩形及圆角正方形,默认为一个矩形,圆,圆角矩形及圆角正方形,默认为一个矩形,通过设置其通过设置其通过设置其通过设置其ShapeShape属性可以画出多种图形。属性可以画出多种图形。属性可以画出多种图形。属性可以画出多种图形。2 2 、重要属性、重要属性、重要属性、重要属性(1 1)ShapeShape属性属性属性属性 Shape Shape属性用于设定几何图形的类型,其值与对应的
82、属性用于设定几何图形的类型,其值与对应的属性用于设定几何图形的类型,其值与对应的属性用于设定几何图形的类型,其值与对应的几何类型如表几何类型如表几何类型如表几何类型如表5.65.6所示:所示:所示:所示: ShapeShape属性属性属性属性值值值值几何几何几何几何类类类类型型型型0-Rectangle0-Rectangle矩形(默矩形(默矩形(默矩形(默认值认值认值认值)1-Square1-Square正方形正方形正方形正方形2-Oval2-Oval椭圆椭圆椭圆椭圆形形形形3-Circle3-Circle圆圆圆圆形形形形4-RoundedRectangle4-RoundedRectangle
83、圆圆圆圆角矩形角矩形角矩形角矩形5-RoundSquare5-RoundSquare圆圆圆圆角正方形角正方形角正方形角正方形表表5.6 Shape5.6 Shape属性值与对应的几何类型关系表属性值与对应的几何类型关系表(3 3)FillStyleFillStyle属性属性 表示形状内的填充格式。其值与对应的填充格式如表示形状内的填充格式。其值与对应的填充格式如表表5.75.7所示。所示。表5.7 FillStyle属性设置FillStyleFillStyle属性属性属性属性值值值值对应对应对应对应的含的含的含的含义义义义0-Solid0-Solid实实实实心心心心1-Transparent1
84、-Transparent透明透明透明透明2-HorizontalLine2-HorizontalLine水平水平水平水平线线线线3-VerticalLine3-VerticalLine垂直垂直垂直垂直线线线线4-UpwardDiagonal4-UpwardDiagonal左上左上左上左上对对对对角角角角线线线线5-DownwardDiagonal5-DownwardDiagonal右下右下右下右下对对对对角角角角线线线线6-Cross6-Cross交叉交叉交叉交叉线线线线7-DiagonalCross7-DiagonalCross对对对对角交叉角交叉角交叉角交叉线线线线(2 2)BorderW
85、idthBorderWidth属性属性 表示表示ShapeShape控件边框的宽度。其值是一个整数,控件边框的宽度。其值是一个整数,默认为默认为1 1。 (4 4)FillColorFillColor属性属性 表示形状内的填充格式颜色,当表示形状内的填充格式颜色,当FillStyleFillStyle属性属性为为1 1时,该属性无效。时,该属性无效。(5 5)BorderColorBorderColor属性属性 用来设置边框的颜色,默认值为黑色。用来设置边框的颜色,默认值为黑色。5.5.1 列表框(ListBox)5.5.2 组合框控件(ComboBox)5.5 列表框(ListBox)与组合
86、框(ComboBox)5.5.1 列表框(列表框(ListBox)1 1、 用途用途用途用途 列表框控件常用来显示一个项目的列表如【例列表框控件常用来显示一个项目的列表如【例列表框控件常用来显示一个项目的列表如【例列表框控件常用来显示一个项目的列表如【例5.15.1】,用户可从中选择一项或多项,如果项目总数】,用户可从中选择一项或多项,如果项目总数】,用户可从中选择一项或多项,如果项目总数】,用户可从中选择一项或多项,如果项目总数超过了列表框可显示的项目数,列表框会自动添加超过了列表框可显示的项目数,列表框会自动添加超过了列表框可显示的项目数,列表框会自动添加超过了列表框可显示的项目数,列表框
87、会自动添加滚动条,以方便用户以滚动的方式来选择列表框项。滚动条,以方便用户以滚动的方式来选择列表框项。滚动条,以方便用户以滚动的方式来选择列表框项。滚动条,以方便用户以滚动的方式来选择列表框项。列表框最主要的特点是只能从其中选择,不能直接列表框最主要的特点是只能从其中选择,不能直接列表框最主要的特点是只能从其中选择,不能直接列表框最主要的特点是只能从其中选择,不能直接修改其中的内容。修改其中的内容。修改其中的内容。修改其中的内容。2 2 、重要属性、重要属性、重要属性、重要属性(1 1)ColumnsColumns属性属性属性属性 该属性用来确定列表框的列数。其属性设置值及相应功该属性用来确定
88、列表框的列数。其属性设置值及相应功该属性用来确定列表框的列数。其属性设置值及相应功该属性用来确定列表框的列数。其属性设置值及相应功能如下:能如下:能如下:能如下:0 0(默认值);以单列的方式显示列表项,垂直滚动列表项。(默认值);以单列的方式显示列表项,垂直滚动列表项。(默认值);以单列的方式显示列表项,垂直滚动列表项。(默认值);以单列的方式显示列表项,垂直滚动列表项。1n1n:以多列的方式显示列表项,水平滚动列表项。:以多列的方式显示列表项,水平滚动列表项。:以多列的方式显示列表项,水平滚动列表项。:以多列的方式显示列表项,水平滚动列表项。图图图图5.65.6为为为为ColumnsCol
89、umns属性取不同值时列表框的显示效果。属性取不同值时列表框的显示效果。属性取不同值时列表框的显示效果。属性取不同值时列表框的显示效果。图5.6 设置Columns属性(2 2)ListList属性属性属性属性 该属性用于设置或返回列表项的内容。可以直接在属性该属性用于设置或返回列表项的内容。可以直接在属性该属性用于设置或返回列表项的内容。可以直接在属性该属性用于设置或返回列表项的内容。可以直接在属性窗口中输入,输入一个列表项以后按窗口中输入,输入一个列表项以后按窗口中输入,输入一个列表项以后按窗口中输入,输入一个列表项以后按“Ctrl+Enter“Ctrl+Enter“,可紧,可紧,可紧,可
90、紧接着接着接着接着输入下一项。图输入下一项。图输入下一项。图输入下一项。图5.75.7为设置为设置为设置为设置ListList属性的属性窗口。属性的属性窗口。属性的属性窗口。属性的属性窗口。图图5.7 List5.7 List属性的属性窗口属性的属性窗口(3 3)MultiSelect MultiSelect 属性属性 该属性用于设置一次可以选择的列表项数。对于一该属性用于设置一次可以选择的列表项数。对于一个标准列表框,该属性的设置值决定了用户能否在列表个标准列表框,该属性的设置值决定了用户能否在列表框中进行多项选择。框中进行多项选择。 MultiSelect MultiSelect属性的设置
91、值见表属性的设置值见表5.85.8。 属性属性属性属性描述描述描述描述0-None0-None每次只能每次只能每次只能每次只能选择选择选择选择一一一一项项项项,如果,如果,如果,如果选择选择选择选择另一另一另一另一项则项则项则项则会取消会取消会取消会取消对对对对前一前一前一前一项项项项的的的的选择选择选择选择。此。此。此。此为为为为系系系系统统统统默默默默认值认值认值认值1-Simple1-Simple可以同可以同可以同可以同时选择时选择时选择时选择多个列表多个列表多个列表多个列表项项项项,后,后,后,后续续续续的的的的选择选择选择选择不会取消前面的所不会取消前面的所不会取消前面的所不会取消前
92、面的所选项选项选项选项。可以用鼠。可以用鼠。可以用鼠。可以用鼠标标标标或空格或空格或空格或空格键进键进键进键进行行行行选择选择选择选择或或或或取消取消取消取消2-Extended2-Extended可以可以可以可以选择选择选择选择指定范指定范指定范指定范围围围围内的列表内的列表内的列表内的列表项项项项。其方法是:按下。其方法是:按下。其方法是:按下。其方法是:按下ShiftShiftShiftShift键连续选择键连续选择键连续选择键连续选择;按下;按下;按下;按下CtrlCtrlCtrlCtrl不不不不连续选择连续选择连续选择连续选择多多多多项项项项表5.8 MultiSelect 属性设置
93、(4 4)TextText属性属性属性属性 返回程序运行时用户所选择项目的文本内容,等于返回程序运行时用户所选择项目的文本内容,等于返回程序运行时用户所选择项目的文本内容,等于返回程序运行时用户所选择项目的文本内容,等于List(ListIndex)List(ListIndex)。(5 5)StyleStyle属性属性属性属性 该属性用于确定列表框的外观,只能在设计时设置。该属性用于确定列表框的外观,只能在设计时设置。该属性用于确定列表框的外观,只能在设计时设置。该属性用于确定列表框的外观,只能在设计时设置。其取值可以为其取值可以为其取值可以为其取值可以为0-Standard(0-Standa
94、rd(标准形式标准形式标准形式标准形式) )和和和和1-Checked(1-Checked(复选复选复选复选框框框框形式形式形式形式) ),区别如图,区别如图,区别如图,区别如图5.85.8所示。当取值为所示。当取值为所示。当取值为所示。当取值为1 1时,列表框的时,列表框的时,列表框的时,列表框的MultiSelectMultiSelect属性只能设置为属性只能设置为属性只能设置为属性只能设置为0 0。图图5.8 不同外观风格的列表框不同外观风格的列表框(6 6)ListIndexListIndex属性属性属性属性 该属性只能在程序中设置或引用。该属性只能在程序中设置或引用。该属性只能在程序
95、中设置或引用。该属性只能在程序中设置或引用。ListIndex ListIndex 值表示执行值表示执行值表示执行值表示执行是是是是选中的列表项序号。如果未选中任何项,则选中的列表项序号。如果未选中任何项,则选中的列表项序号。如果未选中任何项,则选中的列表项序号。如果未选中任何项,则ListIndexListIndex的值的值的值的值- -1 1。(7 7)SortedSorted属性属性属性属性 指定列表部分项目是否按字母表的顺序排列,指定列表部分项目是否按字母表的顺序排列,指定列表部分项目是否按字母表的顺序排列,指定列表部分项目是否按字母表的顺序排列,True-True-排排排排序,序,序
96、,序,False-False-不排序。不排序。不排序。不排序。3 3 、事件:、事件:、事件:、事件: 列表框接收列表框接收列表框接收列表框接收ClickClick和和和和DblClickDblClick事件,但有时不用编事件,但有时不用编事件,但有时不用编事件,但有时不用编写写写写ClickClick事件过程代码,而是当单击一个命令按钮或事件过程代码,而是当单击一个命令按钮或事件过程代码,而是当单击一个命令按钮或事件过程代码,而是当单击一个命令按钮或发生发生发生发生DblClickDblClick事件时,读取事件时,读取事件时,读取事件时,读取TextText属性(此属性的值属性(此属性的值
97、属性(此属性的值属性(此属性的值为为为为最后一次选中的表项的文本,不能直接修改最后一次选中的表项的文本,不能直接修改最后一次选中的表项的文本,不能直接修改最后一次选中的表项的文本,不能直接修改texttext属属属属性性性性。4 4 、常用方法、常用方法、常用方法、常用方法(1 1)AddItemAddItem方法方法方法方法 该方法用于在程序运行时向列表框增加一个列表项,其使该方法用于在程序运行时向列表框增加一个列表项,其使该方法用于在程序运行时向列表框增加一个列表项,其使该方法用于在程序运行时向列表框增加一个列表项,其使用格式为:用格式为:用格式为:用格式为: 列表框名列表框名列表框名列表
98、框名.AddItem .AddItem 要增加的列表项要增加的列表项要增加的列表项要增加的列表项 ,列表项序号,列表项序号,列表项序号,列表项序号 (2 2)RemoveItemRemoveItem方法方法方法方法 该方法用于删除列表框中指定的列表项,其使用格式为:该方法用于删除列表框中指定的列表项,其使用格式为:该方法用于删除列表框中指定的列表项,其使用格式为:该方法用于删除列表框中指定的列表项,其使用格式为: 列表框名列表框名列表框名列表框名.RemoveItem .RemoveItem 列表项序号列表项序号列表项序号列表项序号(3 3)ClearClear方法方法方法方法 该方法用于清除
99、列表框中的所有列表项,执行该方法后,该方法用于清除列表框中的所有列表项,执行该方法后,该方法用于清除列表框中的所有列表项,执行该方法后,该方法用于清除列表框中的所有列表项,执行该方法后,列表框的列表框的列表框的列表框的ListCountListCount将被设置为将被设置为将被设置为将被设置为0.0.其使用格式为:其使用格式为:其使用格式为:其使用格式为: 列表框名列表框名列表框名列表框名.Clear.Clear例如,要清除列表框例如,要清除列表框例如,要清除列表框例如,要清除列表框List1List1中的全部内容,则实现的语句如下:中的全部内容,则实现的语句如下:中的全部内容,则实现的语句如
100、下:中的全部内容,则实现的语句如下:List1.ClearList1.Clear【例【例【例【例5.75.7】编写一个能对列表框进行项目添加、修改和删除操】编写一个能对列表框进行项目添加、修改和删除操】编写一个能对列表框进行项目添加、修改和删除操】编写一个能对列表框进行项目添加、修改和删除操作的应用程序,如图作的应用程序,如图作的应用程序,如图作的应用程序,如图5.95.9所示。因为不能直接对列表框中所示。因为不能直接对列表框中所示。因为不能直接对列表框中所示。因为不能直接对列表框中的内容进行添加、修改和删除操作,所以利用了一个文本的内容进行添加、修改和删除操作,所以利用了一个文本的内容进行添
101、加、修改和删除操作,所以利用了一个文本的内容进行添加、修改和删除操作,所以利用了一个文本框。列表框(框。列表框(框。列表框(框。列表框(LstbooksLstbooks)的项目在)的项目在)的项目在)的项目在Form_LoadForm_Load中用中用中用中用AdditemAdditem方法添加。添加(方法添加。添加(方法添加。添加(方法添加。添加(CmdaddCmdadd)按钮的功能是将文)按钮的功能是将文)按钮的功能是将文)按钮的功能是将文本框中的内容添加到列表框,删除(本框中的内容添加到列表框,删除(本框中的内容添加到列表框,删除(本框中的内容添加到列表框,删除(CmddelCmddel
102、)按钮的功)按钮的功)按钮的功)按钮的功能是删除列表框中选定的项目。如果要修改之后再按修改能是删除列表框中选定的项目。如果要修改之后再按修改能是删除列表框中选定的项目。如果要修改之后再按修改能是删除列表框中选定的项目。如果要修改之后再按修改确定(确定(确定(确定(Cmdmod_okCmdmod_ok)按钮更新列表框。初始时,修改确)按钮更新列表框。初始时,修改确)按钮更新列表框。初始时,修改确)按钮更新列表框。初始时,修改确定按钮是不可选的,即它的定按钮是不可选的,即它的定按钮是不可选的,即它的定按钮是不可选的,即它的EnabledEnabled属性为属性为属性为属性为FalseFalse。图
103、图5.9 【例【例5.7】运行结果】运行结果分析:分析:分析:分析: 主要事件过程是主要事件过程是主要事件过程是主要事件过程是Form_Load( )Form_Load( )和几个按钮的和几个按钮的和几个按钮的和几个按钮的ClickClick事件。该事件。该事件。该事件。该Form_LoadForm_Load事件要求完成:向列表框中添事件要求完成:向列表框中添事件要求完成:向列表框中添事件要求完成:向列表框中添加列表项;其它几个按钮分别用来实现添加,删除,加列表项;其它几个按钮分别用来实现添加,删除,加列表项;其它几个按钮分别用来实现添加,删除,加列表项;其它几个按钮分别用来实现添加,删除,修
104、改等功能,主要使用的修改等功能,主要使用的修改等功能,主要使用的修改等功能,主要使用的AddItemAddItem和和和和RemoveItemRemoveItem方方方方法。法。法。法。 本例主要是对列表框控件的综合应用,在使用过程本例主要是对列表框控件的综合应用,在使用过程本例主要是对列表框控件的综合应用,在使用过程本例主要是对列表框控件的综合应用,在使用过程读者应注意掌握以下知识点:读者应注意掌握以下知识点:读者应注意掌握以下知识点:读者应注意掌握以下知识点:列表框常用属性的使用:如列表框常用属性的使用:如列表框常用属性的使用:如列表框常用属性的使用:如ListList属性、属性、属性、属
105、性、IndexIndex属性、属性、属性、属性、TextText属性和属性和属性和属性和ListIndexListIndex属性的应用;属性的应用;属性的应用;属性的应用;列表框常用方法的使用:如把一个项目加入列表列表框常用方法的使用:如把一个项目加入列表列表框常用方法的使用:如把一个项目加入列表列表框常用方法的使用:如把一个项目加入列表框的框的框的框的AddItemAddItem方法和从列表框中除去一个项目所方法和从列表框中除去一个项目所方法和从列表框中除去一个项目所方法和从列表框中除去一个项目所使用的使用的使用的使用的RemoveItemRemoveItem方法。方法。方法。方法。在编写代
106、码时,根据实际情况考虑命令按钮可操在编写代码时,根据实际情况考虑命令按钮可操在编写代码时,根据实际情况考虑命令按钮可操在编写代码时,根据实际情况考虑命令按钮可操作的条件和环境,进行相应的设置使程序的操作作的条件和环境,进行相应的设置使程序的操作作的条件和环境,进行相应的设置使程序的操作作的条件和环境,进行相应的设置使程序的操作界面更接近界面更接近界面更接近界面更接近WindowsWindows用户界面用户界面用户界面用户界面 5.5.2 组合框控件(组合框控件(ComboBox)1 1、 用途用途用途用途 组合框既可以在控件的文本框部分输入信息,也组合框既可以在控件的文本框部分输入信息,也组合
107、框既可以在控件的文本框部分输入信息,也组合框既可以在控件的文本框部分输入信息,也可以在控件的列表框部分选择项目。它兼有文本框和列表框可以在控件的列表框部分选择项目。它兼有文本框和列表框可以在控件的列表框部分选择项目。它兼有文本框和列表框可以在控件的列表框部分选择项目。它兼有文本框和列表框两者的功能。当用户选定某项后,该项内容自动装入文本框两者的功能。当用户选定某项后,该项内容自动装入文本框两者的功能。当用户选定某项后,该项内容自动装入文本框两者的功能。当用户选定某项后,该项内容自动装入文本框中。组合框也具有自动添加滚动条的功能。中。组合框也具有自动添加滚动条的功能。中。组合框也具有自动添加滚动
108、条的功能。中。组合框也具有自动添加滚动条的功能。2 2 、重要属性、重要属性、重要属性、重要属性 除了除了除了除了MultiSelectMultiSelect属性和属性和属性和属性和SelectedSelected属性是列表框特有的属属性是列表框特有的属属性是列表框特有的属属性是列表框特有的属性外,列表框的其它属性基本上都可用于组合框,此外,性外,列表框的其它属性基本上都可用于组合框,此外,性外,列表框的其它属性基本上都可用于组合框,此外,性外,列表框的其它属性基本上都可用于组合框,此外,StyleStyle是组合框特有的属性,用于设置组合框的外观风格,是组合框特有的属性,用于设置组合框的外观
109、风格,是组合框特有的属性,用于设置组合框的外观风格,是组合框特有的属性,用于设置组合框的外观风格,不同取值外观如图不同取值外观如图不同取值外观如图不同取值外观如图5. 105. 10所示。所示。所示。所示。图图5.10 不同风格的组合框不同风格的组合框(1 1)Style Style 属性取值为属性取值为属性取值为属性取值为0 0: 下拉组合框(是默认的形式),程序运行时其下的列下拉组合框(是默认的形式),程序运行时其下的列下拉组合框(是默认的形式),程序运行时其下的列下拉组合框(是默认的形式),程序运行时其下的列表框并不显示,只有在用户单击了其下拉箭头后才能显示。表框并不显示,只有在用户单击
110、了其下拉箭头后才能显示。表框并不显示,只有在用户单击了其下拉箭头后才能显示。表框并不显示,只有在用户单击了其下拉箭头后才能显示。这种形式在选择时既可以用键盘直接在文本框内输入,也这种形式在选择时既可以用键盘直接在文本框内输入,也这种形式在选择时既可以用键盘直接在文本框内输入,也这种形式在选择时既可以用键盘直接在文本框内输入,也可以打开列表框后进行选择。可以打开列表框后进行选择。可以打开列表框后进行选择。可以打开列表框后进行选择。 (2 2)Style Style 属性取值为属性取值为属性取值为属性取值为1 1: 简单组合框,在任何时候都显示其项目列表,因此没简单组合框,在任何时候都显示其项目列
111、表,因此没简单组合框,在任何时候都显示其项目列表,因此没简单组合框,在任何时候都显示其项目列表,因此没有下拉箭头。可以直接输入也可以在其下拉列表框中选择,有下拉箭头。可以直接输入也可以在其下拉列表框中选择,有下拉箭头。可以直接输入也可以在其下拉列表框中选择,有下拉箭头。可以直接输入也可以在其下拉列表框中选择,这种格式一般使用不多。这种格式一般使用不多。这种格式一般使用不多。这种格式一般使用不多。 (3 3)Style Style 属性取值为属性取值为属性取值为属性取值为2 2: 下拉列表框形式与下拉组合框相同,但与下拉组合框下拉列表框形式与下拉组合框相同,但与下拉组合框下拉列表框形式与下拉组合
112、框相同,但与下拉组合框下拉列表框形式与下拉组合框相同,但与下拉组合框不同的是,它只能打开项目列表后选择列表中的项目,而不同的是,它只能打开项目列表后选择列表中的项目,而不同的是,它只能打开项目列表后选择列表中的项目,而不同的是,它只能打开项目列表后选择列表中的项目,而不能直接在文本框中输入。这种格式,用户不能随意更改不能直接在文本框中输入。这种格式,用户不能随意更改不能直接在文本框中输入。这种格式,用户不能随意更改不能直接在文本框中输入。这种格式,用户不能随意更改只能选择。只能选择。只能选择。只能选择。 3 3 、常用事件、常用事件、常用事件、常用事件 组合框所响应的事件信赖于其组合框所响应的
113、事件信赖于其组合框所响应的事件信赖于其组合框所响应的事件信赖于其StyleStyle属性。当属性。当属性。当属性。当StyleStyle属性值为属性值为属性值为属性值为1 1才能接收才能接收才能接收才能接收DblClickDblClick事件,其他两种组合框事件,其他两种组合框事件,其他两种组合框事件,其他两种组合框可以接收可以接收可以接收可以接收ClickClick事件和事件和事件和事件和DropDownDropDown事件。当事件。当事件。当事件。当StyleStyle值值值值为为为为0 0和为和为和为和为1 1时,可以在编辑区输入文本,当输入文本时时,可以在编辑区输入文本,当输入文本时时
114、,可以在编辑区输入文本,当输入文本时时,可以在编辑区输入文本,当输入文本时可以触发可以触发可以触发可以触发ChangeChange事件。一般情况下,用户选择列事件。一般情况下,用户选择列事件。一般情况下,用户选择列事件。一般情况下,用户选择列表表表表项之后,只需要读取组合框的项之后,只需要读取组合框的项之后,只需要读取组合框的项之后,只需要读取组合框的TextText属性。属性。属性。属性。4 4、 常用方法常用方法常用方法常用方法 列表框的列表框的列表框的列表框的Additem,ClearAdditem,Clear和和和和RemoveItemRemoveItem方法适方法适方法适方法适用于组
115、合框,其用法与在列表框中一样。用于组合框,其用法与在列表框中一样。用于组合框,其用法与在列表框中一样。用于组合框,其用法与在列表框中一样。5 5 、应用实例、应用实例、应用实例、应用实例【例【例【例【例5.85.8】用简单组合框代替【例】用简单组合框代替【例】用简单组合框代替【例】用简单组合框代替【例5.65.6】中的列表框】中的列表框】中的列表框】中的列表框和文本框,实现其和文本框,实现其和文本框,实现其和文本框,实现其“ “添加添加添加添加” ”,“ “删除删除删除删除” ”和和和和“ “修改修改修改修改“ “功能。运行结果如图功能。运行结果如图功能。运行结果如图功能。运行结果如图5.11
116、5.11所示:所示:所示:所示:本章小结本章小结 本章学习了一个重要概念本章学习了一个重要概念本章学习了一个重要概念本章学习了一个重要概念-数组,主要介绍数组的数组,主要介绍数组的数组,主要介绍数组的数组,主要介绍数组的定义、数组元素的引用、数组的输入定义、数组元素的引用、数组的输入定义、数组元素的引用、数组的输入定义、数组元素的引用、数组的输入/ /输出以及常用的一输出以及常用的一输出以及常用的一输出以及常用的一些基本操作。数组是有序的数据的集合。在其他语言中,些基本操作。数组是有序的数据的集合。在其他语言中,些基本操作。数组是有序的数据的集合。在其他语言中,些基本操作。数组是有序的数据的集
117、合。在其他语言中,数组中的所有元素属于同一个数据类型,而在数组中的所有元素属于同一个数据类型,而在数组中的所有元素属于同一个数据类型,而在数组中的所有元素属于同一个数据类型,而在VBVB中,一中,一中,一中,一个数组中的元素可以是相同类型的数据,也可以是不同类个数组中的元素可以是相同类型的数据,也可以是不同类个数组中的元素可以是相同类型的数据,也可以是不同类个数组中的元素可以是相同类型的数据,也可以是不同类型的数据。型的数据。型的数据。型的数据。VBVB中数组包括静态数组和动态数组,应重点中数组包括静态数组和动态数组,应重点中数组包括静态数组和动态数组,应重点中数组包括静态数组和动态数组,应重
118、点掌握它们的使用方法及区别。本章还学习了常用控件掌握它们的使用方法及区别。本章还学习了常用控件掌握它们的使用方法及区别。本章还学习了常用控件掌握它们的使用方法及区别。本章还学习了常用控件ListBoxListBox、ComBoxComBox、ShapeShape和和和和LineLine。其中。其中。其中。其中ListBoxListBox和和和和ComBoxComBox常用于从多个项目中进行选择;常用于从多个项目中进行选择;常用于从多个项目中进行选择;常用于从多个项目中进行选择;ShapeShape和和和和LineLine常常常常用来修饰美化窗体。对于以上提到的控件要求读者掌握其用来修饰美化窗体。对于以上提到的控件要求读者掌握其用来修饰美化窗体。对于以上提到的控件要求读者掌握其用来修饰美化窗体。对于以上提到的控件要求读者掌握其常用属性,重要方法以及主要的事件的使用。常用属性,重要方法以及主要的事件的使用。常用属性,重要方法以及主要的事件的使用。常用属性,重要方法以及主要的事件的使用。