《vb语言程序设计教程.ppt》由会员分享,可在线阅读,更多相关《vb语言程序设计教程.ppt(246页珍藏版)》请在三一办公上搜索。
1、Visual Basic 程序设计教程,第一章 Visual Basic的基本知识,1.1 认识Visual Basic语言1.2 窗体,1.1.1 Visual Basic的特点1、可视化的设计平台(*)2、面向对象的设计方法(OOP)3、事件驱动的编程机制(*)4、结构化的设计语言5、充分利用Windows资源6、开放的数据库功能与网络支持7)完备的help联机帮助功能,设计Visual Basic应用程序的步骤 例:编写应用程序完成功能:当用户在应用程序窗体中用鼠标单击命令按钮时,窗体中显示:“祝你成功!”。,设计Visual Basic应用程序的步骤:,第一步:创建窗体第二步:编写程序
2、代码第三步:运行程序第四步:保存程序第五步:生成EXE文件,1.1.3 面向对象程序设计的概念,类对象容器对象属性方法事件事件过程事件驱动,1.2 窗体窗体的属性窗体的基本属性:Name、height、Width、Left、Top、Enabled、Visible、ForeColor和Image。Name名称:所建对象的名称,每创建一个对象,系统都提供一个默认的名称,可在属性窗口的Name栏进行修改,名称是程序中引用对象的标识符,不显示在窗体上。Height,Width,Top,Left:Height和Width决定了控件对象显示的大小;Top和Left决定了控件对象在窗体中的位置.窗体的左上角
3、为原点,单位为twip。,Enabled:决定控件是否允许操作 True允许用户进行操作,并对操作作出响应;False禁止用户进行操作,呈暗淡色。Visible:决定控件是否可见 True程序运行时控件可见;False程序运行时控件隐含起来看不到,但存在.ForeColor前景色:设置控件的前景色(正文颜色,若控件有正文,该属性才有效),其值是一个16进制的常数,在属性窗口中,提供有调色板供用户选择。BackColor背景色:设置控件中正文背景的颜色。,Caption:决定窗体标题栏显示的内容MaxButton:最大化按钮(其值为True或False)MinButton:最小化按钮(其值为Tr
4、ue或False)Icon:设置窗体最小化的图标ControlBox:设置窗口右上角的控制菜单(其值为True或False)Picture:设置窗体中显示的图片BorderStyle:设置窗体的边框有无,及形式WindowsState:设置窗体在运行时的显示状态 Normal 0(缺省值)正常。Minimized 1 最小化(最小化为一个图标)Maximized 2 最大化(扩大到最大尺寸),1.2.2 窗体的事件,1.2.3 窗体的方法,第一章 END,2.1 基本数据类型2.2 变量与常量2.3 运算符和表达式2.4 常用内部函数2.5 编码规则,第二章 Visual Basic语言基础,
5、2.1 基本数据类型 数据描述客观事物的数、字符以及所有能输入到计算机中并被计算机程序加工处理的符号的集合称为数据。VB的基本数据:P13 表2.1*VB中有多种数据类型,不同的数据类型所占的存储空间不一样。,2.1.1 数值(Numeric)型数据VB提供了6种数值型的数据,如下:1、整型(Integer)即常规型数据优点:运算速度较快,所占内存少缺点:可表示数的范围相对小一些。表示方式:十进制、八进制、十六进制2、长整型(Long)数的表示范围大于整型(232)3、字节型(Byte)表示无符号的整数,范围0255。,4、单精度(Single)可表示最多7位有效数字的数。可用定点形式和浮点形
6、式来表示。单精度的定点形式是在该范围内含有小数的数。如:-3.4 120.0+1.234.00069 单精度的浮点形式使用科学计数法,即以10的整数次幂表示的数,以“E”来表示底数10。如:-3.4E5 120.0E-5 1.234E+12,5、双精度数(Double)最多可表示的15位有效数字的数。也有定点和浮点两种表示法。双精度的定点形式是在该范围内含有小数的数,如:。双精度的浮点形式使用科学计数法,即以10的整数次幂表示的数,以“D”来表示底数10。如:-3.412334D52,120.12567D-45,6、货币型(Currency)支持小数点右面四位和小数点左面15位,是一个精确的定
7、点数据类型。,2.1.2 字符型(String)数据字符型数据一切可打印的字符和字符串,它是用双引号括起来的一串字符。如:”abc”,”123”,2.1.3 布尔(Boolean)型数据 False(假)0 True(真)非0值,与数值型转换,2.1.4 日期(Date)型数据表示日期和时间,可以表示多种格式的日期和时间,用“#”符号把表示日期和时间的值括起来。如#11/18/2000#,#2000-11-18#,#11/18/2000 10:28:56 pm#2.1.5 对象(Object)型数据可用来表示应用程序中或某些其他应用程序中的对象。,2.1.6 可变(Variant)类型数据 能
8、够表示所有系统定义的数据,当把它们赋予Variant型数据时,不必在这些数据间进行转换,VB会自动完成任何必要的转换。例如:SomeValue=18 SomeValue=SomeValue-15 SomeValue=U&SomeValue,目录,2.2 常量与变量2.2.1 Visual Basic的标识符标识符的组成:必须以字母或汉字开头,只能包含字母、汉字、数字和下划线;字符的个数不能超过255个,控件和窗体等的名字不能超过40个字符;不能和VB的关键字同名;注:VB不区分大小写;为了增加程序的可读性,可以在符号名前加上表明数据类型的前缀,如str,int,dtm等。,2.2.2 常量常量
9、在程序运行过程中始终保持不变的常数、字符串等。在VB中,有两种形式的常量:一般常量和符号常量1、一般常量根据使用的数据类型,常量分为:字符串常量、数值常量、布尔常量、日期常量,2、符号常量符号常量分为两种:系统内部定义和用户定义的符号常量(1)系统内部定义的常量,(2)用户定义的符号常量用户定义常量使用Const语句来给常量分配名字、值和类型。声明常量的语法为:Public|PrivateConst常量名As数据类型=表达式注意:的命名规则遵循符号的命名规则。由数值常量、字符串常量等常量及运算符组成,也可以包含前面定义的常量,但不能使用函数调用。,1、变量的声明声明语句的语法:Dim|Priv
10、ate|Static|Public As,As 说明:Public语句声明公有的模块级变量,Private或Dim语句声明私有的模块级变量,Dim或Private或Static语句声明过程级局部变量。,2.2.3 变量,针对字符串变量而言:1、变长字符型变量字符串的长度是不固定的。2、定长字符型变量字符串的长度是不变的。如:Dim sname As String*8 sname=janenjggnj 相当于(sname=janenjgg),2、强制显示声明变量语句 Option Explicit(可有效降低错误率)方法:1)在类模块、窗体模块或标准模块的声明段中加入语句 Option Expl
11、icit2),工具,选项,编辑器选项卡,要求变量声明,2.3 运算符和表达式运算对数据进行加工的过程运算符描述各种不同运算的符号称为运算符。操作数参与运算的数据表达式表示某个规则,它由运算符和配对的圆括号将常量、变量、函数、对象等操作数以合理的形式组合而成。,2.3.1 算术运算符与表达式 由算术运算符、数值型常量、变量、函数和括号组成,其运算结果为一数值。格式:1、算术运算符*/Mod+-2、书写规则3、优先级,-(负数)(*、/)Mod(+、-),2.3.2 字符串运算符与表达式字符串表达式的格式:&例如:Abc&999=Abc999 123&999=123999*“+”也能将两个字符串连
12、接成一个字符串,但“&”能自动将非字符串类型的数据转换成字符串后再进行连接,而“+”则不能。,2.3.3 日期运算符与表达式日期运算符:“+”,“-”日期型数据是一种特殊的数值型数据,它们之间的运算情况有如下3种:(1)两个日期相减,结果是一个数值型数据(两个日期相差的天数)如:#12/19/1999#-#11/16/1999#结果为:33,(2)一个表示天数的数值型数据可以加到日期数据中,结果仍然是一个日期型数据。#11/16/1999#+33结果为:#1999-12-19#(3)一个表示天数的数值型数据可以从日期型数据中减掉,其结果仍然为一个日期型数据。#12/19/1999#-33结果为
13、:#1999-11-16#,目录,2.4 常用内部函数 分为:数学函数随机函数字符串函数日期时间函数转换函数,2.4.1 数学运算函数(表2-5),2.4.2 字符串函数(表2-6),2.4.3 日期时间函数(表2-7),*2.4.4 数据类型转换函数(表2-8),*2.4.5 格式输出函数 用格式输出函数Format()可以使数值、日期或字符型数据按指定的格式输出。语法格式:Format(,),数值格式字符串:,日期格式字符串:,字符格式字符串:,目录,2.5 编写规则,2.5.1 语句及语法2.5.2 代码书写规则,第二章 END,第三章 顺序结构程序设计,数据输入,基本控制语句,常用控件
14、,数据输出,程序调试,3.1 数据输出的基本办法,3.1.1 Print方法 使用Print方法可以在窗体或图片框上输出文本字符串或表达式的值。语法格式:.Print,|;说明:可以是窗体,图片框或打印机.缺省是窗体.,是一个或多个表达式,可以是数值表达式或字符串表达式.输出多个表达式时,各表达式之间的分隔符可以用:逗号,或分号;.在语句行末尾使用分隔符的情况:使用分号则会?使用逗号则会?Print具有计算和输出的双重功能.对于表达式总是先计算后输出.如:Print 3+3,例:使用Print方法在窗体中直接输出字符串或数值表达式的值.,Private Sub Form_Click()dim
15、a as integer a=123 Print 123 Print a Print Visual Basic Print Print a*2 Print 123;a,Visual BasicEnd Sub,2、与PRINT方法有关的函数(1)Tab(n)函数特点:1)当TAB(x)与输出项之间以分号分隔时输出项按x指定的位置显示。2)TAB(x)与输出项之间是逗号分隔时,该TAB(x)无效,仅逗号起作用。3)当打印的当前位置超过x是,输出项在下一行指定的x位置输出。4)如果指定位置x大于行宽,则先进行x MOD 行宽的计算,再用余数作为指定位置显示。,例:Print TAB(6);3 Pri
16、nt TAB(6),3 Print HELLO,CHINA;TAB(6);3 Print TAB(86);3(2)Spc函数 Spc函数输出n个空格,其格式为:Spc(n)例:PRINT TAB(6);3;Spc(20);4,3、使用位置属性 精确地把文本输出到窗体、图片框或打印页上。CurrentX 和 CurrentY.例:P42 3.1,Private Sub Form_Activate()Dim a as string,w as integer,h as integer Me.FontSize=30 a=Visual Basic w=Me.TextWidth(a)h=Me.TextHe
17、ight(a)Me.CurrentX=(Me.ScaleWidth-w)/2 Me.CurrentY=(Me.ScaleHeight-h)/2 Print aEnd Sub,3.1.2 信息对话框输出信息 MsgBox函数在对话框中输出信息,等待用户单击按钮,并返回一个整数以确认用户单击了哪个按钮(P44)。格式为:变量=MsgBox(,),说明:P43信息内容指定在对话框中出现的文本对话框类型指定对话框中出现的按钮和图标,一般有3个内容。对话框标题指定对话框中出现的标题Msgbox()返回的值指明了在对话框中选择了哪一个按钮。第二个参数的值可以是数值,也可以是符号常量如果省略了某些选项,必须
18、加入相应的逗号分隔符。若不需要返回值,则可以使用MsgBox的命令形式。,第二个参数包含的内容:,3.2 数据输入的基本方法,3.2.1 赋值语句LET 赋值语句可以将指定的值赋给某个内存变量或对象的某个属性变量。格式:LET=,3.2.2 用InputBox函数输入数据InputBox函数显示一个能接受用户输入的对话框,并返回用户在对话框中输入的信息。格式为:变量=InputBox(,,XPOS,YPOS)例:h=InputBox(请输入你的姓名,输入,张三),说明信息内容指定在对话框中出现的文本对话框标题指定对话框中出现的标题默认内容可以指定输入框中显示的默认文本。XPOS可以指定输入框与
19、屏幕左边的距离YPOS可以指定输入框与屏幕上边的距离用户单击“确定”:返回文本框内容到变量中用户单击“取消”:返回一个零长度的字符串。,3.3 常用基本语句,3.3.1 注释与暂停1、注释语句 格式:Rem 或,3.3.2 加载对象语句Load 在程序运行的过程中,有时需要添加新的窗体或为控件数组增加新的元素,这类操作可以通过加载对象语句Load来完成。语法格式:Load 对象名 功能:把对象名代表的对象,如窗体、控件数组元素等加载到内存中,以供程序使用。说明:使用Load语句可以加载窗体,但不显示窗体。当VB加载窗体对象时,先把窗体属性设置为初始值,再执行Load事件过程。例如:Load F
20、orm2Form2.Visible=True,3.3.3 卸载对象 Unload语句当要结束应用程序而从内存当中卸载窗体或要从内存当中卸载某些控件时,可以使用Unload语句。其语法格式为:Unload 对象名说明:“对象名”是要卸载的窗体对象或控件的名称,3.3.4 结束语句(End)End语句强制终止代码的执行。End语句提供了一种强迫终止程序的方法Visual Basic程序正常结束应该卸载所有的窗体。与End不同,Stop不会关闭任何文件,或清除变量。,3.3.5 暂停语句(Stop)Stop语句用来暂停语句的执行。Stop语句主要作用是把解释程序设置为中断模式,以便对程序进行检查和调
21、试。,3.4 常用标准控件及应用,Visual Basic应用程序的用户界面多数情况下是在窗体上添加适当的控件完成的。了解一些最常用的控件和控件的基本属性,如命令按钮、标签、文本框等,就能完成一些简单程序的界面设计。学习这些控件就是学习它们的属性,事件,方法。,3.4.1 控件的基本属性,Name属性Caption属性Enabled属性Visible属性Height属性BackColor和ForeColor属性Font属性,3.4.2 焦点与Tab键序 1.焦点焦点是用于描述对象接收鼠标或键盘输入的能力。我们称当前被操作的对象获得了焦点(Focus)。焦点对象才有接收鼠标或键盘输入的能力。当对
22、象具有焦点时,才能接收用户的输入。要将焦点赋给对象(窗体或控件),有以下几种方法:(1)用鼠标选定对象。(2)按快捷键选定对象。(3)按Tab键或Shift+Tab键在当前窗体的各对象之间切换焦点。(4)在代码中用SetFocus方法来设置焦点。,2.Tab键序 Tab键序是指用户按Tab键时,焦点在控件间移动的顺序。通过改变控件的TabIndex属性值,可以改变默认的按Tab键移动焦点的顺序。,注意:当控件接收焦点时,会发生GotFocus事件;当控件失去焦点时,会发生LostFocus事件。可以使用SetFocus方法在代码中设置焦点。TabIndex属性和TabStop属性:TabInd
23、ex属性决定控件接收焦点时的顺序TabStop属性决定焦点是否能够停在该控件上,3.4.3 命令按钮命令按钮(CommandButton)当用户用鼠标单击命令按钮,或者选中命令按钮后按回车键时,就会触发该命令按钮相应的事件过程。1.常用属性(Name,Enabled,Visible)(1)Default属性:对应“Enter”(2)Cancel属性:对应“Esc”(3)Style属性:设置命令按钮的外观,默认值为0表示以标准的Windows按钮方式显示;其值为1时,表示以图形按钮显示,此时可用Picture,DownPicture和DisabledPicture属性来分别指定按钮在正常、被按下
24、和不可用3种状态下的图片。(4)Caption属性,2.常用事件和方法事件:命令按钮最常用的事件是Click(单击)事件,但不支持DblClick(双击)事件。方法:命令按钮常用的方法是SetFocus方法。,3.4.4 标签控件标签(Label)主要用来显示比较固定的提示性信息,常作为提示或输出信息的控件,其默认名称(Name)为Label1,Label2,。1.常用的属性(1)Alignment属性:设置标签中文本的对齐方式;(2)AutoSize属性:确定标签的大小是否根据标签的显示的内容自动调整大小;(3)BorderStyle属性:设置标签的边框,可以取两种值;(4)BackStyl
25、e属性:设置标签的背景模式;(5)Caption属性:标签内显示内容;(6)Wordwrap属性:改变标签垂直方向的大小。,2.常用事件和方法事件:标签可触发Click,DblClick等事件。方法:标签支持Move方法,用于实现控件的 移动。,3.4.5“文本框”控件(TextBox)1、常用属性文本框没有Caption属性(1)Maxlength属性(2)Multiline属性(3)PasswordChar属性 注意:只有在Multiline属性被设置为False的前提下,PasswordChar属性才能起作用。(4)ScrollBars属性 注意:使文本框出现滚动条的前提是Multili
26、ne属性必须设置为True。(5)SelStart属性、Sellength属性和SelText属性(6)Text属性(7)Locked属性,2.常用事件和方法事件:Click,DblClick,Change(内容改变)、GotFocus(获得焦点)、LostFocus(失去 焦点)方法:SetFocus方法和Move方法。,例:P58 3-9,3.4.6 滚动条1滚动条的用途滚动条控件的作用是为那些不能自动支持滚动的应用程序和控件提供滚动功能。2常用属性Min、Max属性Value属性SmallChange(最小变动值)属性LargeChange(最大变动值)属性3常用事件Scroll事件:当
27、用鼠标拖动滚动块时,即触发Scroll事件。Change事件:当改变Value属性值时,即触发Change事件。,例3-11:设计一个调色板应用程序,如图所示。,3.4.7 PictureBox(图形框)图形框控件的主要作用是为用户显示图片,也可以作为其他控件的容器。属性:1.Picture属性 图片框对象名.Picture=LoadPicture(“图形文件名”)2.Autosize属性:设置为True时,图形框能自动调整大小与显示的图片匹配。方法:1.Print:图片框对象名.Print 2.Cls:图片框对象名.Cls,第三章 END,第四章 选择结构程序设计,4.1 选择结构的概念4.
28、2 条件表达式4.3 选择结构程序设计4.4 配合选择功能的控件4.5 选择程序设计综合举例,4.1 选择结构程序设计概念特点:根据给定的条件为成立与否,而决定从各种不同的解决方案中选择某一个方案来执行。条件语句的功能是:根据条件表达式的值有选择地执行一组语句。,4.2 关系表达式和逻辑表达式 4.2.1 关系运算符和关系表达式 关系运算符主要是对比较来说的。关系表达式是由关系运算符把两个算术表达式连接起来的式子。一般形式:,VB 提供的关系运算符有:=(等于)(大于)(不等于)=(大于或等于)=(小于或等于),数值型数据按其大小进行比较;日期型数据看成“yyyymmdd”的8位整数,按数值大
29、小进行比较;字符型数据按其ASCII码值进行比较。比较字符串时,从第一个字符开始比较。常见字符值的大小:空格数字大写字母小写字母 任何汉字不要对单精度或双精度的数进行“=”比较。,4.2.2 逻辑运算符和逻辑表达式 一个简单的条件可用关系运算符表示,一个复杂的条件只能用逻辑运算符构成逻辑表达式来判断;如:10 Y 0(数学表达式)?(VB表达式),VB提供的逻辑运算符有:逻辑运算符 含义 例 AND 逻辑与 AB AND BC OR 逻辑或 AB OR BC NOT 逻辑非 NOT AB XOR 逻辑异或 AB XOR BC,逻辑运算符之间的优先级为:,4.2.3 运算符的优先顺序 一个逻辑表
30、达式内可能包括逻辑运算符、关系运算符和算术运算符,它们有一个优先顺序的问题,它们的优先顺序如下:,4.3 选择结构程序设计4.3.1 条件语句1)IfThen语句 单行结构格式If 条件表达式 Then 语句块结构格式If 条件表达式 Then 语句块 End If,2)IfThenElse语句IfThenElse语句也有两种语法格式。单行结构格式If 条件表达式 Then 语句1 Else 语句2块结构格式If 条件表达式 Then 语句块1 Else 语句块2End If,3)条件语句嵌套及多分支条件语句(1)If语句的嵌套(2)带ElseIf的If语句的嵌套If 条件表达式1 Then
31、语句块1ElseIf 条件表达式2 Then 语句块2ElseIf 条件表达式3 Then 语句块3.ElseIf 条件表达式n-1 Then 语句块n-1Else语句块nEnd If,4.3.2 情况选择语句Select CaseSelect Case 测试表达式 Case 取值列表1 语句块1 Case 取值列表2 语句块2 Case Else 语句块nEnd Select,说明:是必要参数,是任何数值表达式或字符串表达式在Case子句中,为必要参数,用来测试其中是否有值与相匹配。其形式有:表达式:Case 3 表达式 to 表达式:指定一个范围 Case 2 to 9 Case a to
32、 f Is关系运算表达式:Case Is100,可选参数,是一条或多条语句Case Else子句用于指明其他语句系列,当测试条件和所有的Case子句中的值都不匹配时,则会执行这些语句。,4.3.3 IIf函数 格式 IIf(条件表达式,“真”的返回值,“假”的返回值)功能 函数分别返回“条件表达式”为真和为假时的取值。“真返回值”和“假返回值”可以是任何表达式,,4.4 提供简单选择的控件 4.4.1 使用“框架”控件(Frame)“框架”控件也是一种容器控件,在框架控件中的控件可以随着框架一起移动。框架控件的常用属性有:Name,Caption,Font等。注意:框架控件另一重要作用是:用来
33、对选项按钮进行分组。,4.4.2 选项按钮(OptionButton)一、使用选项按钮组(一般用框架(Frame)控件来组织一个选项组)1、常用属性 caption,alignment value:控件的选择状态(True,False)style:使用图形选项按钮 2、事件 click,4.4.3 复选框(CheckBox)选项按钮组属于多项中选择一项的选择,若许选择多项的情况,则可以采用多哥复选框控件。1、常用属性 caption,alignment value:决定复选框的状态 0假(没选中)1真(选中)2暗(缺省)style 2、事件 click,4.4.4 计时控件器(Timer)计时
34、器控件(Timer)按指定时间间隔重复的发生它的timer事件。主要属性:Enable:定时器是否开始工作的设置 Interval:设置定时器触发的周期,以毫秒 计算,取值范围为:064767 唯一事件:Timer,例:设计一个电子时钟。,例:设计一个跑秒表。,例:屏幕滚动字幕,第四章 END,第五章 循环结构程序设计,5.1 循环概念5.2 循环结构及循环程序5.3 循环程序设计举例,5.1 循环结构程序设计的概念 VB提供的设计循环结构的语句有:Do LoopWhileWendForNextForEach Next,条件成立,需重复执行的语句,是,否,执行后续语句,5.2 循环结构及循环程
35、序,5.2.1 设计循环结构的基本原理构造循环结构的三个要素(1)构造循环体:需要重复执行的语句(2)设置循环出口:停下重复工作的条件人为约定条件方式计数方式(3)初始化,5.2.2 用循环语句写循环程序1)WHILE 循环结构格式:WHILE 循环体 WEND,执行过程:(1)对“条件”进行求值,判断条件是“真”还是“假”;(2)如果“条件”为真,则执行循环体,执行完之后再转到(1)执行;如果“条件”为“假”,则转到(3);(3)结束循环体的执行,跳到WEND的下一个语句执行。,2)Do.Loop共有三大类语法格式下面分别介绍之:无条件循环结构前测型循环结构后测型循环结构有五种语法形式:,(
36、1)无条件循环型语法格式:Do 循环体Loop退出循环语句:EXIT DO,(2)当型DoLoop循环,Do While Exit Do Loop,Do Until Exit Do Loop,(3)直到型DoLoop循环,Do Exit Do Loop While,Do Exit Do Loop until,3)ForNext 语句 当已知循环次数时,可用ForNext循环。For循环使用一个循环变量,每重复一次循环后,循环变量会自动增加或减少。流程图:,格式为:For=To Step Exit For Next,5.3 循环程序设计举例:1、计算1+2+3+100的结果。2、判断输入的数是否
37、是素数。方法:判断一个自然数n(n3)是否素数,只要依次用2-n 作除数去除n,若n不能被其中任何一个数整除,则n即为素数.,5.4 列表框与组合框控件5.4.1 列表框(ListBox)1)常用属性(1)Name属性(2)List属性 该属性是一个字符型数组,存放列表框或组合框的选项。List数组的下标从0开始。,(3)ListIndex该属性只能在代码中设置或引用。ListIndex的值表示程序运行时被选定选项的序号。如果未选中任何选项,则ListIndex的值为-1。(4)ListCount该属性只能在代码中设置或引用。其值表示列表框或组合框中项目的数量。(5)Sorted该属性只能在属
38、性窗口设置。其决定在程序运行期间列表框或组合框的选项是否按字母顺序排列显示。,(7)Text属性只能在代码中设置或引用。其表示被选定的文本内容,该属性不能被赋值,只能使用。如:Label1.caption=List1.textCombo1.additem Combo1.text,(6)Selected 该属性只能在代码中设置或引用,是一个逻辑数组,其元素对应列表框中相应的项,表示对应的项在程序运行过程中是否被选中。如果 List1.Selected(0)=True,表示第一项被选中。,2)事件列表框:Click事件和DblClick事件3)方法(1)AddItem:把一个选项加入列表框或组合框
39、。格式如下:对象.AddItem item,index,(2)RemoveItem:从列表框或组合框中删除一个选项。格式如下:对象.RemoveItem index,(3)Clear方法:可以清除列表框或组合框的所有内容。格式如下:对象.Clear 说明:对象:可以是列表框或组合框;,4)列表框表项的输出输出列表框中的表项的常用方法:用鼠标单击列表框内某一表项,则该表项值存放在Text属性中。指定索引号以获取表项的内容。,5.4.2 组合框的常用属性(1)Style属性 决定组合框的类型和行为,它的值为0,1或2,1,0,2,下拉式组合框,简单组合框。,下拉式列表框,(2)事件组合框:Clic
40、k事件,keypress(style=0,1)(只有简单组合框才能接收DblClick事件),第五章 END,第六章 数 组,6.1 数组的概念6.2 数组的声明和应用6.3 动态数组及声明6.4 For EachNext循环语句6.5 控件数组,6.1 数组的概念,6.1.1 数组与数组元素 6.1.2 数组的下标与维数,6.1.1 数组与数组元素1、数组:如果某些数据是有内在联系的,是具有相同属性的(如10个学生的成绩),可以把这批数据看作一个有机的整体,称为数组(array)用序号或下标来区分各个数据。,概念:是用一个统一的名称来表示的、顺序排列的一组变量。,2、数组元素:数组中的变量称
41、为数组元素,用序号来标识它们。可以用数组名及一个序号的标识一个数组元素。如:a(5)表示名称为a的数组中序号为5的那个数组元素(变量)。,数组元素,6.1.2 数组的下标与维数1数组的下标 数组的下标可以是常数、变量、表达式或另一个数组的元素。下标值可以是正整数、0和负整数,如果带有小数部分将会自动地对它四舍五入取整。,2数组的维数 如果数组元素只使用一个下标就可以标明元素的位置,则称这个数组为一维数组。例如:a(2),s(5)如果数组元素要使用二个下标才能标明元素的位置,则称这个数组为二维数组。例如:a(2,2),s(3,4),1)指定下标的上界Dim 数组名(下标上界)As 类型名Dim
42、数组名(第一维下标上界,第二维下标上界)As 类型名,2)指定下标的取值范围 Dim 数组名(下标下界 To 下标上界)AS 类型名 Dim 数组名(下标下界 To 下标上界,第二维的下界 to 上界)AS 类型名,6.2.1 数组声明语句,6.2 数组的声明和应用,用Array函数,根据数据表生成一个一维数组。Array函数返回一个包含数据表中数据的Variant类型数组,其使用格式为:变体名=Array(数据表)例如:dim a as variant a=array(2,5,6,8,10,5,9),6.2.2 Array函数,其中:“变体名”是预先定义的类型为变体的数组名;“数据表”是一个
43、用逗号隔开的值表,这些值用于给函数返回的Variant所包含的数组各元素赋值;只能生成一维数组。下标默认为0开始,如有Option Base 1,则为1开始。,6.2.3 数组应用,例6-1:斐波那契(Fibonacci)数列如下:1,1,2,3,5,8,13,21,试求出该数列的前30项。,假定有n个数的序列,存放在数组 a(1 to n)中要求按递增的次序排序。算法的步骤如下:,例6-6:数组排序,(1)第1轮:先将a(1)与a(2)比较,若a(2)a(1),则将a(1)与a(2)的值交换,a(1)存放较小者。再将a(1)与a(3)、a(n)比较,并依次作出同样的处理,n个数中的最小者放入
44、a(1)中,完成了第一轮比较。(2)第2轮:将a(2)与a(3)、a(n),并依次作出同样的处理,第一轮余下的n-1个数中的最小者放入a(2)中,完成了第二轮比较。(3)继续进行第3轮、第四轮、直到第n-1轮,余下的a(n)就是n个数中的最大者。,排序过程如下:,原始数据 8 6 9 3 2 7,a(1)a(2)a(3)a(4)a(5)a(6)第1轮交换后 2 8 9 6 3 7,a(2)a(3)a(4)a(5)a(6)第2轮交换后 2 3 9 6 8 7,a(3)a(4)a(5)a(6)第3轮交换后 2 3 6 9 8 7,a(4)a(5)a(6)第4轮交换后 2 3 6 7 8 9,a(5
45、)a(6)第5轮交换后 2 3 6 7 8 9,例:对已知存放在数组中的6个数,用选择排序按递增顺序排序。,静态数组-在声明时已确定了大小的数组,其在程序运行过程中是不变的。动态数组-在声明时未给出数组的大小(省略括号中的下标),当要使用它时,随时用ReDim语句重新指出数组的大小。建立动态数组的方法:使用Dim语句声明下标括号内为空的数组,然后在过程中用ReDim语句指明该数组的大小。,6.3 动态数组,6.3.1 建立动态数组(1)声明动态数组Dim DynArray()(2)用Redim分配实际元素个数ReDim 数组名(下标,下标2)As 类型,6.3.2 保留动态数组的内容每次执行R
46、eDim语句时,当前存储在数组中的值都会全部丢失。当希望改变数组大小,但又不丢失数组中原有的数据,使用具有Preserve关键字的ReDim语句就可做到这点。UBound函数引用数组下标的上界:UBound(数组名,维序号)LBound函数引用数组下标的下界:LBound(数组名,维序号)例如:ReDim Preserve Array(UBound(Array)+1)注意:在用Preserve关键字时,只能改变多维数组中最后一维的上界。,6.3.3 数组刷新语句 数组刷新语句(Erase)可以作用于固定数组和动态数组,清除大小固定的数组的元素的内容,释放动态数组占用的存储空间。其语法格式为:E
47、rase 数组名表 说明:对固定大小(静态)数组,Erase语句将数组重新初始化;对于动态数组,Erase将释放动态数组所使用的内存空间。,6.4 For EachNext语句For EachNext语句是专门用于数组或集合的循环语句。对数组或集合中的每个元素逐个重复循环。功能:对数组元素进行查询,显示或读取。循环的次数与数组元素的个数相等。,格式:For Each In Exit For Next 其中:内的内容实际就是数组或集合中的每个元素,用一个变量代表,是一个数组名,没有括号上下界。,注意:不能用此语句对普通的数组元素作“赋值”的操作,因为语句中的表示数组元素的值,不是数组元素本身。但
48、是可以对控件数组中的每个控件的属性作赋值操作。,6.5 控件数组 6.5.1 控件数组的概念 控件数组是由一组相同类型的控件组成。他们共用一个控件名,具有相同的name属性。当建立控件数组时,系统给每个元素赋一个唯一的索引号(Index),通过属性窗口的Index属性,可以知道该控件的下标是多少,第一个是0。为了区分控件数组的各个元素,VB会把下标值传送给过程(即返回给index):Private Sub Command1_Click(Index As Integer),6.5.2 控件数组的建立。3种方法:1、改变控件的名称2、复制现有控件3、指定控件的索引值,6.5.3 控件数组的使用一般
49、用于实现控件和选项按钮分组。1、命令按钮组 例:单击每个命令按钮时显示按钮对应的序号。2、选项按钮组 3、标签组,第六章 END,第七章 过 程,7.1 通用过程7.2 参数传递7.3 过程的嵌套与递归调用7.4 变量、过程的作用域7.5 多窗体与Sub Main过程,在 Visual Basic中最常使用下列两种通用过程:Sub 过程不返回值,称为子过程。Function 过程返回值,称为函数过程。,7.1 通用过程,1)Sub过程的定义 两种定义方法:(1)利用“工具”菜单下的“添加过程”命令定义,7.1.1 Sub过程,(2)利用代码窗口直接定义 定义格式如下:Private|Publi
50、cStatic Sub(形参)语句组 Exit Sub 语句组 End Sub,2)Sub过程的调用 Sub过程不能够被直接执行,只能够通过其他过程调用它,才能被执行。Sub过程的调用是一句独立的调用语句,有两种形式:Call 子过程名(实参表列)子过程名 实参表列,1)函数过程的定义格式:Private|Public Static Function AS=Exit Function End Function,7.1.2 Function过程,2)函数过程的调用 函数过程的调用:除了事先需要定义函数外,调用FUNCTION函数的方法与调用标准函数的方法相同。其形式为:函数过程名(参数列表)如: