《VB语言程序设计(总结).ppt》由会员分享,可在线阅读,更多相关《VB语言程序设计(总结).ppt(176页珍藏版)》请在三一办公上搜索。
1、VB简介:VB是一种面向对象的、图形用户界面的、具有事件驱动编程机制的、新颖的、易用的可视化程序设计工具。VB的7个特点:(1)面向对象的程序设计方法(继承、多态、封装)(2)图形用户界面,编程工作量少(3)事件驱动机制(4)可视化(5)支持第三方开发的VB工具箱(6)具有数据库访问特性(7)支持串口通信VB发展简史,VB简介:,VB(Visual Basic)的发展简史:,60年代初,Dartmouth学院发明了BASIC(Beginners All purpose Symbolic Interchange Code)语言。1976年,Microsoft公司开发了Basic语言的早期版本。8
2、0年代初,Microsoft公司推出了GW-Basic。80年代中,Microsoft公司推出了Qbasic。90年代初,Microsoft公司推出了Visual Basic1.0。98年,Microsoft公司推出了VB6.0Office系列以及autocad中的二次开发工具VBA使用VB,网页脚本语言VBScript是VB的子集2002年诞生了VB.NET,是一种Web编程语言,VB的集成开发环境称IDE(Intergrated Develop Environment),包括:标题栏、菜单栏、工具栏、控件箱、窗体设计器窗口、工程管理器窗口、属性窗口、代码窗口、窗体布局窗口等,集成了应用程序
3、设计、编辑、编译、调试、运行等功能。工程:VB中的应用程序。VB通过工程来组织应用程序的开发,用工程来管理工程应用程序的文件。启动VB后就会看到VB集成开发环境界面:,1.1.1 集成开发环境,VB6.0的启动,1.快捷方式(在桌面上):例如2.开始菜单:开始/程序/Microsoft Visual Basic6.0/Microsoft Visual Basic6.0例如3.资源管理器:开始/程序/资源管理器c:program filesVBMicrosoft Visual Basic6.0例如4.我的电脑:c:program filesVBMicrosoft Visual Basic6.0例
4、如5.开始菜单:开始/运行/输入VB启动文件的名字例如:“c:program filesVBMicrosoft Visual Basic6.0”例如,作用:用来显示打开的工程名和系统的工作状态,1.1.2 标题栏,return,当“工程”被关闭后自动创建、自动保存的“工作区(Workspace)”文件。return,当“窗体”上有图片框或图象框,而且该控件已装入图片或窗体本身的picture属性的图片被装载以后,会自动保存一个与窗体名同名的窗体二进制文件(frx)。return,3.视图菜单,作用:VB有7个窗口,视图菜单用于对各窗口进行操作,通过选择视图菜单来显示/打开各窗口。,return
5、,VB集成开发环境中有7个常用窗口,他们是:主窗口、项目组窗口(工程资源管理器窗口)、属性窗口、窗体布局窗口、窗体窗口、代码窗口、工具箱窗口,1.1.6 窗体,return,讲解,(1)主窗口:包括13个下拉菜单,即:文件、编辑、视图、工程、格式、调试、运行、查询、图表、工具、外接程序、窗口、帮助和21个常用命令做成的工具按钮放到工具条中。例(2)项目组窗口/工程资源管理器窗口:包括运行正在编写的VB程序所需的文件清单,有3个按钮,查看代码(View Code)、查看对象(View Object)、查看文件夹(Toggle Folders)例(3)属性窗口:描述对象性质的表格,用来设置对象的外
6、观行为。(4)窗体布局窗口:确定用户所设计的图形界面在计算机屏幕上的位置(5)窗体窗口:程序运行时用户能看见的图形界面。(6)代码窗口:在该窗口中进行编程。(7)工具箱窗口:设计用户界面所需的各种控件元素。如:按钮、标签、文本框、收音机按钮等。,1.2 用VB6.0开发应用程序,1.2.1 开发VB应用程序的主要步骤:1.创建应用程序界面:使用控件箱中的控件在窗体中把界面设计出来,应用程序界面一般由窗体、按钮、菜单、文本框、图象框等构成。控件的使用2.设置界面上各个对象的属性:在属性窗口对每个对象的属性进行设置,包括对象的外观、名称、颜色、大小等属性。注意:先选定要设置属性的对象,然后进行设置
7、3.编写对象事件过程代码:一定要明确哪个对象的什么事件发生时做出哪些响应之后才编写代码,这样才能将代码写到正确的位置,否则,代码不被执行。4.保存工程:一个VB程序就是一个工程,设计一个应用时,系统会自动建立一个扩展名为.vbp的工程文件。VB组织文件的方式该工程文件包含了该工程所建立的所有文件的相关信息。VB要保存的文件类型,5.运行和调试:通过“运行”菜单中的菜单项或工具栏中的按钮来完成,出现错误时,VB会给出提示信息。6.生成可执行文件:文件/生成工程1.exe来生成可执行文件,此后可以脱离VB环境直接运行该可执行文件。开发实例,VB6.0要保存的程序类型,VB6.0可以保存两种类型的文
8、件:项目文件和窗体文件,其中:(1)项目文件:以.vbp为扩展名,保存一个项目的窗体及模块目录。(2)窗体文件:以.frm为扩展名,保存窗体代码及显示布局。每个工程中可以包含多个窗体。VB默认先保存窗体,再保存工程。所以保存两次。另外,特殊情况下,要保存以下类型的文件:项目组文件:.vbg,保存由多个项目组成的项目组文件。类文件:.cls,列出所有类模块。Basic模块:.bas,列出所有标准模块。属性页文件:.pag,列出所有属性页。用户定义控件文件:.ctl,列出所有用户定义的控件。文档对象文件:.dob,列出所有的文档对象。保存操作:通过菜单和工具条完成。注意:养成随时保存文件的习惯。r
9、eturn,工程组,工程1,工程2,窗体1,窗体2,窗体1,窗体2,return,回25,1.VB6.0的启动有哪些方式?2.VB主菜单项后的括号中带下划线的字符的作用是什么?如何使用?3.创建VB应用程序的主要步骤有哪些?4.哪一个窗口可以在设计时直观的调整窗体在屏幕中的位置?5.如果向控件箱中添加控件使用哪一个菜单项?6.窗体上带有图片框控件(已装入图片)的VB应用程序有哪些类型的文件?,7.工程的属性在哪个菜单项中设置?8.VB要保存的常见的文件类型?每个类型的扩展名?9.工程、工程组、窗体之间的关系是怎样的?4.哪一个窗口可以在设计时直观的调整窗体在屏幕中的位置?5.如果向控件箱中添加
10、控件使用哪一个菜单项?6.窗体上带有图片框控件(已装入图片)的VB应用程序有哪些类型的文件?,2.1.1 常量类型:数值型、字符型、逻辑型、日期型一般常量123,-456.8,“ABC”,“水产学院”,true,false,#1/3/2004#1 MAR 2004#,#MARCH 1,2004#,&O123,-&HA2符号常量语法:Public|Private|Global Const 常数名 AS 数据类型=表达式表达式可以是结果为数或字符串的表达式或先前定义过的常量Public或Global说明可在整个应用程序中使用,Private 说明只能在该过程中使用。(全局常量)常量名必须以字母开头
11、,不包含句号或类型说明符,不能超过255个字符。例:Const PI=3.14 Const E as double=2.718 const N%=78,2.1常量、变量、运算符和表达式,2.1.2 变量变量名字母开头由字母、数字和下划线组成不能包含空格、句号、类型说明符长度不超过255不能与关键字重名,变量类型,L,L,L,说明1:字符串类型有定长和变长,定长字符串的存储空间为串长;变长字符串的存储空间为10+串长。RETURN说明2:variant有数字类型和字符类型之分。数字类型存储空间为16;字符串类型为22+串长。说明3:variant包含3种特定值:Empty,NULL,ErrorE
12、mpty:不同于0、零长度字符串、Null的特定值。Null:未知的数据或丢失的数据,一般用于数据库Error:已发生的过程中的错误状态。Variant变量赋值之前具有值Empty。包含NULL的表达式,计算结果总是NULL,Variant用于在用户不能确定变量的数据类型时声明变量,以便计算机为该变量留内存空间。变体根据实际需要可以为10种任何数据类型中的任何一种。Private Sub Form_Activate()Dim a as variant a=1 Print a a=this Print aEnd Sub输出结果为:1this,Private Sub Form_Activate()
13、Dim a As Integer a=1 Print a a=this Print aEnd Sub将出现编译错误,在变量名后加上“%”或在-3276832767之间的整数后加上%都表示该变量为整型,例:Private Sub Form_Activate()a%=234.567 c=234.567 b=234%Print a,b,cEnd Sub将打印出235 234 234.567整型和长整型的区别:(1)占内存空间不同(2)表示数的范围不同,单精度最多能保留到小数点后6位有效数字,双精度可保留到小数点后14位(单精度为7位有效数字,双精度为15位有效数字)。单精度的类型说明符为!,双精度的
14、类型说明符为#。货币类型的必要性:为精确表示财务帐目。类型说明符为,它的精度高,规定精确到小数点后4位,一般的数值型数据在计算机中是以二进制进行计算的,计算有误差,而货币类型是以十进制进行计算的,精确度高。另外,单精度只有7位有效数字,双精度只有15位有效数字,表示大数额的货币时不精确,如:$223 555 868 999 234.65,用单精度数表示为:$2.235559E14,用双精度数表示为:223 555 868 999 235,用货币类型表示为:$223 555 868 999 234.65 RETURN,3.变量说明(1)显式说明Dim 变量名 As 数据类型,变量名 As 数据类
15、型Static 变量名 As 数据类型,变量名 As 数据类型Public 变量名 As 数据类型,变量名 As 数据类型Private 变量名 As 数据类型,变量名 As 数据类型例:Dim Myname as string Dim YourName as String*50 Dim objDb as object set objDb=OpenDatabase(“C:vbtest.mdb”),说明:Static 定义静态变量Public 定义的变量可以在其他对象的过程中使用Private 定义的是局部变量,(2)隐式说明.用类型说明符声明变量例:no%声明no为一个整型变量 s$声明s为一
16、个字符串变量 d#声明d为一个双精度型变量例:no%=90s$=“hello”d#=3.14159265,(3)Option Explicit作用:为避免写错变量名而引起麻烦,可以使VB只要遇到未声明的变量就发出错误警告。使用方法:在代码窗口中加入Option Explicit语句(代码窗口的对象列表中选“通用”,事件列表中选“声明”)“工具”/“选项”/“编辑器”/选中“要求声明变量”复选框,会自动在任何新模块中插入“Option Explicit”语句,2.1.3 运算符和表达式运算符算术运算符:+,-,*,/,Mod,关系运算符:,=,=,IS,Like连接运算符:&,+(字符串连接)逻
17、辑运算符:and(与),or(或),not(非),Xor(异或),Imp(包含),Eqv(等价),整除运算()结果是商的整数部分,72结果为3.5的整数部分Mod求两个整数相除以后的余数。在这两种运算中,如果参加运算的是实数,则先按四舍五入原则将他们变成整数,然后进行计算。除法运算(/):两个整型常量或变量进行除法运算的结果如果赋给一个整型量结果为整型,运算结果与整除运算结果一样;如果赋给实型量,结果为实型。,逻辑运算符的运算结果:,2.运算符的优先级:其中优先级由高到低运算,同级由左到右有括号先算括号内。,2.2.1 赋值语句格式:变量名或对象.属性名=表达式表达式可以是常量、变量、对象.属
18、性名、表达式左右两边类型必须一致,否则强制类型转换字符与数值不能互相赋值例:Text1.text=“Hello!”Dim Myname as stringMyname=“Helen”Dim MyAge as integerMyAge=Myage+1,2.2赋值与注释语句和一句多行与一行多句,2.2.2 注释语句1.REM注释格式:REM 注释内容2.单引号注释格式:注释内容两种格式都可以占一整行或半行(写在语句后边对语句注释)前者占半行时需在语句后加上冒号,2.2.3 一句多行与一行多句1.一句多行在行尾加上“_”表示续行,即:该行还没完,此时不能在后边加注释例:Text1.text=text
19、1.text+”hello,”_+”大连水产学院”2.一行多句语句之间用冒号分隔。例如:A=8:b=9:c=10,2.3.1 分支结构,2.3基本控制结构,1.If Then 结构语法:If 条件 Then 语句组End If或写作:if 条件 then 语句(必须是单个语句的情况)例:If a 0 Then b=a Else b=-a,.If Then else结构语法:If A Then 或 If A1 Then BB1Else Else If A2 Then CB2End If Else If A3 ThenB3 ElseBn End If,If a0 thenprint aEnd If
20、If a 0 Then b=aElse b=-aEnd If,If Score 60 Then print“Fail”ElseIf Score70 Then print“Pass”ElseIf Score80 Then print“Middle”ElseIf Score90 Then print“Good”Else print“Excellent”End If,Select Case语句语法:Select Case 表达式Case Case Case Case ElseEnd Select,例:Select Case scoreCase 5print“Best”Case 4print“Bett
21、er”Case 3print“Good”Case Else print“Fail”End Select,说明:(1)值的形式可以是:具体常数:1,2,3,“A”等连续的数据范围:1 to 100,A to Z满足某个条件的表达式:10多个不同范围,用逗号阁开:1,3 to 5,9(2)SELECT Case 结构在开始处计算表达式的值,IFTHENELSE结构在每个elseif处计算表达式的值(3)如果不止一个case子句与表达式的结果相同则只执行第一个子句(4)case else放在select case结构的最后,4.嵌套嵌套的if语句中,endif语句自动与最靠近的前一个if语句配对尽量
22、用缩进的方式书写结构语句和循环语句,1 Do循环无条件循环:Do语句组exit do语句组Loop,有条件循环:条件为True时执行循环体,条件为False时退出循环体。Do While 语句组exit do语句组Loop,条件为False时执行循环体,条件为True时退出循环体。Do Until 语句组exit do语句组Loop,2.3.2 循环结构,Do语句组exit do语句组Loop Until,当满足条件时执行循环体。While 循环体Wend,Do语句组exit do语句组Loop While,在循环终止时测试循环条件,循环无条件执行一次:,Do循环的循环体中必须有使循环条件变为
23、false的语句,否则,循环会永远进行下去。即:产生死循环。,2.For循环语法:For=ToStep 循环体Exit ForNext For语句的执行步骤:Step 1:设置循环控制变量为循环初值Step2:如果步长为正,判断循环控制变量是否大于循环终值,如果步长为负,判断循环控制变量的值是否小于循环终值,如果是,退出循环,否则,执行循环体。Step3:循环控制变量=循环控制变量+步长Step4:goto step2注:步长可以为负,步长缺省时为1,内部函数:VB提供的函数函数调用:函数名(参数1,参数2)2.4.1 算术函数VB提供的进行算术运算的函数。,2.4常用内部函数,2.4.2 字
24、符串函数VB提供的进行字符串处理的函数。,2.4常用内部函数,例:设计一个将输入的字符串反向显示的程序,Private Sub cmdStart_Click()Dim str,strReverse As String Dim I,n As Integer str=txtInput.Text:n=Len(str)For i=1 To n strReverse=strReverse&Right(str,1)str=Left(str,Len(str)-1)Next i txtOutput.Text=strReverseEnd Sub,例:译电文,为了保密,在电文传输过程中往往将电文加密,收电文时再转
25、换回来。比如:按下列规律译:A变成E,B变成F,W变成A,X变成B,Y变成C,Z变成D。,Private Sub cmdStart_Click()Dim SourceStr,SecretStr As String Dim i As Integer SecretStr=SourceStr=txtInput.Text,For i=1 To Len(SourceStr)c=Mid(SourceStr,i,1)If c=a And c=A And c=W And c=w And c=z Then c=Chr(Asc(c)+4-26)Else c=Chr(Asc(c)+4)End If End If S
26、ecretStr=SecretStr&c Next ItxtOutput.Text=SecretStrEnd Sub,2.4.3日期与时间函数作用:用于对日期和时间进行处理的函数。,2.4.4类型转换函数作用:用于进行不同数据类型之间转换的函数。ASCII码与字符串之间的转换 ASCII码转换成字符串:chr 如:chr$(13)将ASCII码13转换成“回车”,chr$(10)将ASCII码10转换成“换行”。字符串转换成ASCII码:Asc。例:Private Sub Form_Click()Cls 清除窗体Dim I As Integer 声明I为整型变量For I=Asc(“h”)to
27、 Asc(“z”)Print I 打印相应的ASC值Next IEnd Sub分析执行结果,然后上机看执行结果。,(2)数与字符串之间的转换Str$,Format$,Val将数转换成字符串:Str$,这些数包括实数、货币、整数。将数据进行格式化:Format$,将数、日期、时间、字符串按指定 格式进行格式化。例如:a=51.8375 b=Format(a,”00.000”),则b=51.838将字符型数转化为数值型数:Val注:文本框的内容、标签上的数为字符串类型,不能直接计算。(3)一种数据类型转换成另一种数据类型:Fix:实数转换成整数,取整。Int:实数转换成整数,四舍五入。,input
28、Box函数一般用于输入,MessageBox用于输出:2.5.1 InputBox函数作用:接受用户从键盘输入的内容格式:InputBox(提示信息,标题,缺省值,Xpos,Ypos,帮助文件名,帮助主题号)说明:当按“确定”按钮时函数的返回值是输入的文本内容,按“取消”按钮时返回空串。提示信息为在输入对话框中显示的提示信息,长度不超过1024标题为输入对话框的标题拦显示的信息,缺省为应用程序名缺省值为缺省的输入内容Xpos,Ypos对话框在屏幕上的起始位置,2.5输入与输出,例:Thefile=InputBox(“请输入文件名:”,“输入对话框举例”,“file1”)产生的对话框为:,Pri
29、vate Sub Form_Click()Text1.Text=InputBox(hello)End Sub,2.5.2 MsgBox函数作用:消息框是VB用MsgBox函数或语句提供的一种对话框,它本身不是用控件实现的。当用函数实现时有返回值,通过返回值可以继续下一步的工作。主要作用是向用户发布提示信息,要求用户做出相应的响应。格式:MsgBox(提示信息,按钮类型,标题,帮助文件名,帮助主题号)说明:1.提示信息和标题均为字符串常量或字符串变量2.提示信息是在消息框中显示的信息3.标题为消息框的标题显示的信息。4.按钮类型可以用符号常量,也可以用数字,当为数字时为C1+c2+c3+c4的和
30、例1:例2:5.MsgBox函数也有返回值,返回值是由所按的按钮确定的,含义,例:result=MsgBox(“数据正确吗?”,65,“消息框举例”)return,缺省按钮及其对应的值,指定缺省按钮的符号常量和相应数值return,return,return,消息框的强制返回性return,例:想让消息框的按钮为VbYesNoCancel类型、第二个按钮为缺省 按钮而且图标为感叹号则第二个参数值设为:307=3+256+48语句为:Text2.Text=MsgBox(“hello”,307,“test”)或 Text2.Text=MsgBox(hello,vbYesNoCancel+vbDef
31、aultButton2 _+vbExclamation,test)return,例:注册窗口的设计:,Private Sub Command1_Click()If Text1.Text=DL Then If Text2.Text=dz Then Form2.Show Form1.Hide Else If MsgBox(口令错误!重新输入吗?,52,错误信息)=6 Then Text2.Text=Text2.SetFocus Else End End If End If,Else If MsgBox(“用户名错误!重新输入吗?”,65,“用户名错误信息”)=1 Then Text1.SetFoc
32、us Text1.Text=Else End End If End If End Sub,2.5.3 Print方法作用:在窗体、图片框或打印机上输出文本格式:对象.print 表达式列表说明:表达式列表中间的分隔符可以是逗号或分号,分号表示按紧凑格式输出,逗号表示按标准位置输出。例:表达式列表缺省时输出一空行例:行尾可以有逗号、分号和回车,逗号、分号的含义同1,表示下一个print语句的输出内容与当前print语句的最后一个输出项的位置关系,回车表示换行。例:可以用格式函数控制输出格式,这些格式函数包括:format、spc、tab例,Private Sub Command1_Click()
33、Dim a,b,c As Integer a=9:b=8:c=7 Print a,b,c Print a;b;cEnd Sub,return,Private Sub Command1_Click()Dim a,b,c As Integer a=9:b=8:c=7 Print a,b,c Print Print a;b;cEnd Sub,return,Private Sub Command3_Click()Dim a,b,c As Integer a=9:b=8:c=7 Print a,Print b;Print c Print a;b;cEnd Sub,return,2.6数组,2.6.1 数
34、组声明1.数组定义:格式:Dim|Global 数组名(数组元素上下界,)As 类型说明:(1)数组元素上下界可以表示为:下界 to 上界,缺省时数组下界时序号从0开始编号。(2)数组元素上下界的个数表示数组的维数(3)数组为变体类型时不同数组元素可以赋不同类型的值。(4)数组不同于普通变量,使用前必须先声明。,2.Option Base语句格式:Option Base 0|1功能:声明数组的缺省下标说明:(1)数组的默认缺省下标为0,可以用该语句将其改为1(2)一个模块中只能出现一次该语句,且必须放在数组声明语句 之前。,2.6.2 静态数组和动态数组1.静态数组:固定大小的数组,维数和大小
35、不能改变。动态数组:运行时可以改变其大小的数组,事前可以不指定数组的大小,在需要时指定。格式:ReDim Preserve 数组名(数组元素上下界,)As 类型说明:(1)ReDim 用于为动态数组重新分配存储空间,只能改变每一维的数组元素的个数,不能改变数组的维数。(2)当改变数组元素最末维的大小时用preserve可以保留数组中原来的数据。(3)不能改变数组元素的类型(4)如果将数组元素改小,被删元素的数据就会丢失,Private Sub Command1_Click()Dim a()As Integer Dim x,y As Integer x=5 y=9 ReDim a(5,9)ReD
36、im a(x+1,y+1)ReDim Preserve a(x+3,y+6)End Sub,例:点击按钮时,用输入对话框输入一个整数N,然后求Fabonacci数列:1,1,2,3,5,8,13,21,到第N项,并把结果输出到窗体上Fabonacci数列的关系:F1=1F2=1Fn=Fn-1+Fn-2,Private Sub Command1_Click()Dim i,f()As Integer Dim n As Integer n=Val(InputBox(please Input A Integer:,Fabonacci,10)If n 0 Then ReDim f(n)f(0)=1:f(
37、1)=1 For i=2 To n f(i)=f(i-1)+f(i-2)Next i For i=0 To n Print f(i),If I+1 Mod 5=0 Then Print End If Next i End If PrintEnd Sub,2.6.3 多维数组:1.定义:Dim|Global 数组名(最大长度,最大长度,.)As 类型2.使用:用多重循环来使用。例For I=1 to nfor j=1 to ma(I,j)=0next jNext I,2.折半查找法在一组已经排好序的数中查找某个数。折半查找是通过每次得到被查数据范围的中间数据,然后与被查数据进行比较,如果该中间数
38、据大于被查数据,则查找前半部分,否则查找后半部分,依此进行排查。例:某物的价钱在11024之间一般的猜法为:,高了,512?,256?,低了,320?,高了,高了,384?,288?,恭喜!答对了!,当点击窗体时,用输入对话框输入要查找的数,被查找的范围事先指定,并在窗体被激活时显示在窗体上。,Const N=10Dim a(N)As IntegerPrivate Sub Form_Activate()Dim i,j As Integer a(1)=1:a(2)=5:a(3)=8:a(4)=16:a(5)=23 a(6)=31:a(7)=59:a(8)=88:a(9)=96:a(10)=123
39、 Print the array is:For i=1 To N Print a(i),Next i PrintEnd Sub,Private Sub Form_Click()Dim findNum,curLocation,top,bott As Integer Dim found As Boolean found=False findNum=Val(InputBox(please input a number,the number)top=N:bott=1 Do curLocation=bott+Int(top-bott)/2)If findNum=a(curLocation)Then fo
40、und=True Exit Do,Else If findNum a(curLocation)Then bott=curLocation+1 Else top=curLocation-1 End If End If Loop While Not found And bott=top If found Then Print findNum;in the location:,curLocation Else Print findNum;is not in the array!End IfEnd Sub,3.冒泡法排序基本原则:从前往后依次将相邻的两个数进行比较,小的换到前面,大的换到后面,第一次循
41、环完将最大的数换到最后,然后再从前往后比较,不过,这次比较前n-1个数,依此,每次循环都会产生一个最大的数放在序列的最后,直到进行了n-1次循环就产生的排序序列:例:5,4,2,0第一次循环:4,5,2,0 4,2,5,0 4,2,0,5第二次循环:2,4,0,5 2,0,4,5第三次循环:0,2,4,5,Private Sub Command1_Click()Const n=10 Dim i,j,temp As Integer Dim a()As Integer ReDim a(n)Randomize,Print Print Print the Array Before Sorted:For
42、 i=1 To n a(i)=Int(Rnd*100)+1 Print a(i),Next i,For i=1 To n-1 For j=1 To n-i If a(j)a(j+1)Then temp=a(j)a(j)=a(j+1)a(j+1)=temp End If Next j Next i,Print Print Print the Array Before Sorted:For i=1 To n Print a(i),Next i PrintEnd Sub,3.1.1 面向对象的程序设计对象:客观世界的任何一个个体都可以称为一个对象。例:窗体、按钮、菜单项、文本框、标签等。面向对象的程
43、序设计是事件驱动的。事件:发生在对象上的动作。例如:点击窗体、在窗体上拖动鼠标、文本框内容改变、文本框按下键盘等。,3.1基本概念,方法:对象能完成的动作例如:按钮移动、控件获得焦点、控件内容刷新等属性:对象所具有的性质例如:控件的名字、控件的外观、控件的字体、控件的大小、应用程序的图标等。,Private Sub Form_Click()Print helloEnd Sub,面向对象程序设计是事件驱动的,各对象的事件过程的执行顺序是随机的,是取决于事件发生的顺序。例:,对象是代码和数据的集合,对象必须通过对象来引用,一个窗体是一个模块,本窗体内部的对象可以直接用名字来访问,在本窗体之外引用窗
44、体内的对象,必须在对象名前加上窗体名。例:有两个窗体:form1和form2,各有一个文本框,名字都叫txt1、一个命令按钮,名字都叫cmd1,在窗体form1的cmd1的click事件中写代码:,Private Sub Cmd1_Click()Form2.txt1.Text=helloEnd Sub,同一个窗体上的两个同类控件属于两个不同的对象,例如:窗体上有两个文本框分别叫:txt1和txt2。,3.1.3 对象属性1.静态设置在设计时在“属性”窗口进行设置2.动态设置在代码窗口中用代码来实现,用代码动态修改对象属性:对象名.属性名=表达式 例:Txt1.text=“Hello”Cmd1.
45、caption=“确 定”S=“500”txtInput.text=stxtOutput.text=txt1.text+s&“元”,3.1.4 对象的方法即:对象要做的动作调用方法:对象名.方法名(参数1,参数2,)例如:Command1.moveText1.refreshForm2.show*方法不同于属性,方法不能被赋值,只能调用在写出对象名后自动列出的成员列表中,属性名和方法名分别如下:,3.1.5 对象的事件即:对象对动作作出的响应事件过程名的构成:对象名_事件名()例如:command1_click()form_load()txt_change(),3.2.1 窗体的属性1.常用属性
46、名及含义,3.2创建窗体,3.2.2 窗体的方法,3.2.3 窗体的事件(1)Activate和DeActivate当一个窗体变成活动窗体时,触发Activate事件;另一个窗体或应用程序被激活,原活动窗体不再是活动窗体,其DeActivate事件被触发。(2)Initialize当窗体第一次创建时触发,一般是将窗体的初始化代码放入该事件中。(3)Load窗体装入时触发,在Initialize事件之后,当使用Load语句或未装载之前使用show方法时可触发该事件,一般是将变量初始化代码或设置控件默认值代码放入其中,(4)UnLoad窗体卸载时触发,当单击窗体的“关闭”按钮或使用UnLoad语句
47、时触发(5)Resize调整窗体大小时触发,(6)鼠标事件MouseMove:鼠标在窗体上移动时发生MouseDown:用户在窗体上按下鼠标左键或右键时发生MouseUp:用户在窗体上按下鼠标左键或右键后,释放鼠标左键或右键时发生Click:用户在窗体上单击鼠标左键时发生DoubleClick(DblClick):用户在窗体上双击鼠标左键时发生单击时发生的顺序:down up click双击时发生的顺序:down up clickdblclick up,(7)键盘事件:KeyDown:用户按下键盘上某个键时触发。KeyUp:用户按下某个键后释放时触发。KeyPress::用户敲击键盘时触发。触
48、发的顺序:,KeyDown,KeyUp,KeyPress,(1)卸载窗体语句作用:应用程序把窗体(或其他对象)从内存卸载语法:UnLoad 对象名说明:当卸载窗体时,将触发对象的UnLoad事件。如果卸载的对象是程序唯一的窗体,则将终止程序的执行。例如:可以在窗体的“退出”按钮的CLICK事件写代码:Unload me 卸载当前窗体,结束应用程序。,Load和UnLoad事件是在系统装载和卸载窗体时自动触发的事件,与装载和卸载语句不同(3)END作用:在程序代码中结束应用程序的运行语法:END无论应用程序处于什么状态,只要执行该语句,立即结束应用程序的运行,END之后的代码不会被执行,也不会有
49、任何事件被触发。对对象的所有引用都将被释放。,3.控件的值属性所有控件都有一个与控件值有关的属性,叫控件的值属性。在引用该属性时不需要指定属性名,只需要指定控件名,一般为控件的常用属性,例如:文本框的text,标签的Caption,图象框的picture属性等例如:Text1.text=”Hello”可以写作:text1=“Hello”,控件的TabIndex属性决定了它的Tab键的顺序,运行时,按Tab将按TabIndex属性的顺序逐一使控件获得焦点。当改变了一个控件的Tab键的顺序值,VB自动为其他控件的TabIndex重新编号,如果将TabStop属性值设为false,可将其从Tab键顺
50、序位置中删除。框架(Frame)、标签(Label)、菜单(Menu)、线(Line)、形状(Shape)、图象框(Image)、定时器(Timer)不能接受焦点不能获得焦点的控件及无效控件(Enable=false)的控件和不可见控件(Visible=false)不包含在Tab键顺序中,按Tab键时这些键将被跳过,6.访问键通过键盘访问控件的键,命令按钮、复选框、单选按钮都可以创建访问键。设置方法:对象的caption属性中在字符前加&,运行时,该字符前会出现下划线,按下Alt+访问键就同单击按钮一样。例:caption属性设为:Cmd&Start命令按钮外观:,7.容器窗体、框架、图片框可