vb教程word版.docx
《vb教程word版.docx》由会员分享,可在线阅读,更多相关《vb教程word版.docx(55页珍藏版)》请在冰豆网上搜索。
vb教程word版
vb复习资料
目录
1.对象的有关概念
2.基本控件和窗体
3.工程的管理及环境的设置
4.常见错误
5.数据类型
6.常量和变量
7.运算符和表达式
8.常用的内部函数
9.数据的输入与输出
10.顺序结构
11.选择结构
12.循环结构
13.单选按钮和复选框
14.框架
15.时钟
16.图形控件
17.鼠标与键盘事件过程
18.数组
19.过程
1.对象的有关概念
Vb中常用的对象有:
窗体(如Form1,Form2)、控件(如CommandButton、TextBox、Label控件)等。
对象的三要素
(1)属性
对象的性质,即用来描述和反映对象特征的参数。
(如Label控件的Caption属性,Form窗体的BackColor属性)
(2)方法
(3)事件
响应对象的动作称为事件,它发生在用户与应用程序交互时。
如单击控件(Click)、鼠标移动(Mousemove)、键盘按下(KeyPress)等。
2.基本控件和窗体
1).常用属性
A.(名称)属性
创建的对象名称,有默认的名.在程序中,控件名是作为对象的标识而引用,不会显示在窗体上。
注意与Caption属性的区别!
B.Caption标题属性
该属性决定了控件上显示的内容。
C.Height(高度)、width(宽度)、top(距上边界)和left(距左边界)属性
(对每个对象属性的掌握,说到底就是对各个属性英文的掌握!
)
D.Enabled属性
控件是否可操作.当设置为false时,呈暗淡色,禁止用户进行操作.
E.Visible属性
控件是否可见.当设置为false时,用户看不到,但控件本身存在。
F.Font属性
Fontname字体 Fontsize字体大小 Fontbold是否是粗体
Fontitalic是否斜体 Fontstrikethru是否加一删除线
Fontunderline是否带下划线
G.Forecolor前景颜色属性
设置控件的前景颜色(即正文颜色).其值是一个16进制常数(如&H80000012&,不须掌握),用户可以在调色板中直接选择所需颜色(这样选色就可以了!
)。
H.Backcolor背景颜色属性
I.BorderStyle边框风格属性
0-None:
控件周围没有边框
1-FixedSingle:
控件带有单边框。
J.AutoSize属性
控件是否根据正文自动调整大小
K.Text:
正文内容
以上这些是涵盖窗体和标签、文本框、命令按钮控件的常用属性,在编程时若需用到其他属性,可参见vb课件1和vb6.0的帮助菜单(vb精简版可能不附带帮助内容)!
3.工程的管理及环境的设置
工程的组成
工程文件包含了一个应用程序的所有文件:
我们在保存工程时程序会让我们保存两个文件:
窗体文件(扩展名为.frm)和工程文件(扩展名为.vbp)
窗体文件就是程序运行时我们看到的图形界面
工程文件包含程序代码(就是PrivateSub到EndSub那一堆东西)
(代码只有借助图形界面才能将程序运行的效果展现在我们面前!
否则只是在后台运行。
)
4.常见错误
1).使用中文标点符号
系统产生“无效字符”,以红色显示
2).字母和数字形状相似
小写字母“l”和数字“1”形式相同、小写字母“o”与数字“0”。
3).(名称)属性和Caption属性混淆
这个,沈阳已强调过多次!
4).对象的属性名、标准函数名写错
5).打开工程时找不到对应的文件
保存文件时先保存窗体.frm文件、再保存.vbp文件,注意路径。
5.数据类型
为了更快处理数据,VB系统定义了多种数据类型,我们只要重点掌握以下几种足矣:
1).数值数据类型:
Integer(整型)
Long(长整型,整数范围:
-32768~32767)
Single(单精度型,说白了,就是“小数型”,一般够用了)
注意:
数值型数据都有一个有效范围值,程序中的数如果超出规定的范围,将会出现“溢出”信息(如数据定义为Long,但数据的数值为65000,超过了32767的上限,这叫“溢出”)。
如小于范围的下限值,系统将按“0”处理,如大于上限值,则系统按上限值处理,并显示出错信息。
2).字符型数据
String(字符串型)
字符型是存放字符型数据,字符可以包括所有西文字符和汉字,字符两侧用双引号””括起。
字符串是放在双引号内的若干个字符,其中一个西文字符占一个字节,一个汉字或全角字符占两个字节,长度为0的字符串称为空字符串(即””)。
例:
”1234”、”a”、”abcd”、”计算机”。
注意:
(1)””表示空字符串,而““表示的是有一个空格的字符串;
(2)如字符串中本身含有双引号,则用两个连续的双引号表示。
例:
表示字符串
计算机”ABC,正确的表示形式为:
”计算机””ABC”,(已调试,正确!
)
3).日期型数据
Date(日期):
日期型数据通常用两个“#”符号把表示日期和时间的值括起来。
如:
#03/22/2003# #02/10/199812:
30:
00#
如输入的日期或时间是非法的(就是不符合规范的)或不存在的,系统将提示出错。
4).逻辑型数据(Boolean布尔型)
逻辑型数据用于逻辑判断,只有两个值:
真(True)和假(False)。
当逻辑数据转换成整数数据时,True将转换为–1,False转换为0;当其他数值类型转换为逻辑型数据时,非0数转换为True,0转换为False。
6.常量和变量
在VB程序中,不同类型的数据既可以以常量的形式出现,也可以以变量的形式出现。
常量:
在程序运行过程中值始终保持不变的量;变量:
在程序运行过程中其值可以改变的量。
常量或变量的命名规则
在VB中,命名一个常量或变量的规则如下:
1).须以字母或汉字开头,由字母、汉字、数字或下划线“_”组成,其组成字符不超过255个。
2).不能直接使用VB中的系统关键字、属性名、对象名、过程或函数方法名,如From、Text、If等;但可以把关键字嵌入常量名或变量名中使用,如Form_IF为合法变量名。
3).不能包含句号、空格或者类型声明符($,%,@,#)等。
4).命名时不区分大小写,如XYZ和xyz认为是同名。
一般变量名首字母用大写,其余用小写;常量则全部用大写字母表示。
例:
以下为使用不当的变量名
3a ‘以数字开头
QWE ‘出现了空格
Dim ‘使用了VB的关键字
常量
VB内部定义了大量的常量,但有时用户还是需要创建自己的符号常量,通常使用Const语句来定义常量的名字、类型和值。
定义形式:
Const符号常量名[AS类型]=表达式
例:
ConstPIAsSingle=3.14或ConstPI=3.14
[AS类型]:
说明要定义常量的数据类型,如省略了该项,则该常量的数据类型由后面的表达式决定。
变量
变量在程序运行过程中其值可以发生变化的量。
使用变量前,一般须先声明变量名及其类型。
我们只要掌握的变量声明形式:
Dim变量名[As类型]
例:
DimCountAsInteger ‘将变量Count定义为整型变量
Dimss ‘没指定类型,则变量ss默认为变体类型
注意:
(1)为方便定义,也可在变量名后紧跟类型符来代替[As类型]。
例:
Dimx% ‘定义x为整型变量
Dimy!
‘定义y为单精度型变量
(2)一条Dim语句可以同时定义多个变量,但每个变量要有自己的类型声明。
例:
DimxAsInteger,yAsSingle或Dimx%,y!
Dima,bAsInteger
(3)Dimx%
X=3.5 ‘赋值3.5将自动四舍五入,转换为整数型4赋给x
(4)声明变量可以有效的降低错误,为了调试程序的方便,一般对使用的变量进行声明较好.
变量的赋值
变量进行了声明后,在使用过程中往往要进行具体的赋值。
赋值语句的作用是:
先计算右边表达式的值,然后将值赋给左边的变量。
(“从右到左”,千万牢记!
)
变量的赋值语句形式如:
变量名=表达式
注意:
(1)赋值号“=”左边只能是变量,不能是常量、常数符号或表达式;赋值号右边的表达式可以是任何类型的表达式或常量值,一般其类型应与变量名的类型一致。
(2)一个赋值语句只能对一个变量赋值。
如出现a=b=c=1式的赋值为错误的。
(3)不能把字符串的值赋值给数值型变量。
(4)同为数值型时,右边的数值类型转换为左边的变量名的类型后赋值。
(5)赋值语句类似A=A+X的语句很常用,起累加作用。
例:
DimaASInteger,bASInteger
a=5
b=b+1
变量的作用域
静态变量:
用Static声明的静态变量,在每次调用过程时保持原来的值,不重新初始化。
而用Dim声明的变量,每次调用过程时,重新初始化
同名变量:
对不同范围内出现的同名变量,可以用模块名加以区别。
一般情况下,当变量名相同而作用域不同时,优先访问局限性大的变量。
7.运算符和表达式
运算符是代表VB某种运算功能的符号。
VB程序会按运算符的含义和运算规则执行实际的运算操作(就是数学嘛!
)。
由运算符将相关的常量、变量、函数等连接起来的式子即为表达式。
例如:
a+b (4/3)*Pi*r^3 “It’s“&“acat” 等等。
运算符
VB中的运算符可分为算术运算符、关系运算符、字符串运算符、逻辑运算符、连接运算符。
算术运算符
算术运算符用于进行数值计算的运算符,VB中包括七个算术运算符:
+、-、×、/、\、MOD、^,其中“-”运算符根据所属实际情况可作负号或减号使用。
下表列出了VB中的算术运算符。
设例中的变量ia=4
注意:
(1)在以上7个算术运算符中,只有取负(-)是单目运算符(即单个操作数),其他均为双目运算符(两个操作数)。
(2)算术运算符两边的操作数应是数值型,若是数字字符或逻辑型,则自动转换成数值类型后再运算。
例表达式:
false+5-“2” ‘结果为3
(3)表中的运算优先级指的是当表达式中含有多个运算符时,各运算符执行的优先顺序(从1~6代表运算优先级别越低)。
(4)除法运算有两种:
/:
一般除法,运算结果一般为单精度数。
如果操作数有一个为双精度数,则结果为双精度数。
如:
7/3=2.33333333333
\:
整除,整数除法,结果为整数。
如:
7\3=2
(5) Mod运算符是求两数相除后的余数。
例如:
2Mod 7 ‘结果为2
8.6Mod 3 '结果为0
25.63Mod5.2 '结果为1(遇到小数时,先四舍五入为整数,再计算,如本题:
25.63变为26,5.2变为5,26Mod5=1)
字符串运算符
VB中的字符串运算符包括两个:
“&”、“+”,用于进行字符串的连接。
当两个字符串用连接运算符连接起来后,第二个字符串将直接添加到第一个字符串的尾部,组合成一个字符串。
运算符:
&、+
功能:
&:
连接符两边的操作数不管是字符还是数值型,进行操作前,系统先将操作数转换成字符型,然后再连接。
+:
两个操作数应均为字符型,若均为数值型,则进行算术加运算;若一个为数字字符,另一个为数值型,则自动将数字字符转换为数值,然后进行算术加运算;若一个为非数字字符型,另一个为数值型,则出错。
【注】
(1)在字符串变量后使用运算符“&”应注意变量和”&”之间应有一个空格,以区分其作为类型定义符的使用。
(2)在进行字符串的连接时尽量使用连接符号”&”实现。
例:
"123"+"456" ‘结果为“123456”
"123"&"456" ‘结果为“123456”
"abc"+12345 ‘出错
“abc”&12 ‘结果为:
“abc12”
123 +456 ‘结果为:
579
123 &456 ‘结果为:
”123456
关系运算符
关系运算符是用于进行两个数比较大小的运算符,运算结果为逻辑型(只有True/False两种结果),参与的操作数可为数值型、字符型。
VB的关系运算符如下:
<(小于)、<=(小于等于)、=(等于)、<>(不等于)、>=(大于等于)、>(大于)
【注】
(1)关系运算符不分优先级,从左到右执行。
(2)如果两个操作数是数值型,则按其大小比较;如果两个操作数是字符型,则按字符的ASCII值从左到右比较。
例如:
"abcd"> "ad" ‘结果为False
89< 60 ‘结果为False
"abc"<> "ABC" ‘结果为True
"abcdef"="abcdf" ‘结果为False
#2/6/2004# > #2/1/2004# ‘结果为True
逻辑运算符
逻辑运算符用于连接布尔型数据(一般用于复合比较),结果为逻辑值。
VB支持的逻辑运算符按优先顺序列出如下:
Not(非)、And(与)、Or(或)。
运算符及功能如下表:
表达式
由运算符将常量、变量、函数等连接起来的有意义的式子即为表达式。
一个表达式可能很简单,也可能由几部分组成,但总有一个值,其返回值的类型由运算数和运算符决定。
1.表达式书写规则
在VB中书写表达式时,应遵循下列规则:
(1)乘号不能省略。
(2)不能使用方括号或花括号,只能用圆括号。
圆括号可以出现多个,但要配对。
(3)表达式从左至右在同一基准上写,无高低、大小之分。
例:
表示算术表达式:
大于等于3且小于7的数。
正确的VB表达式:
3<=xAndx<=7
错误的VB表达式:
3<=x<=7或3<=xOrx<=7
2.不同类型的运算符优先级
【注】
可通过增加括号来改变优先级或使得表达式更清晰易读。
例:
选拔身高T超过1.7米且体重W小于62.5公斤的人,表示该条件的逻辑表达式为:
(T>=1.7)AND(W<=62.5)
8.常用的内部函数
数学函数
数学函数与数学中定义的函数一致,其参数和函数值的数据类型均为数值型。
下表为常用的数学函数。
【注】在三角函数中,以弧度表示;sqr的自变量不能是负数。
转换函数
【注】
(1)Str()函数将非负数值转换成字符类型后,会在转换后的字符串左边增加空格,即数值的符号位。
如Str(123)的结果为“□123”,而不是“123”。
“□”代表空格。
(2)Val()将数字字符串转换为数值,当字符串中出现非数值字符时,停止转换,函数返回的是停止转换前的结果。
如Val(“–123.45AB”)转换的结果为-123.45。
日期函数
9.数据的输入与输出
常用的输入方式有:
键盘输入数据的函数InputBox以及文本框等控件。
常用的输出方式有:
Print方法、MsgBox函数和过程以及图形框、文本框、标签等控件。
InputBox函数
格式:
InputBox(提示[,标题][,默认][,x坐标位置][,y坐标位置])
功能:
InputBox函数产生一个对话框,作为输入数据的界面,等待用户输入内容,当用户单击“确定”按钮或按回车键,函数返回输入的值,其值的类型为字符串(String)。
说明:
(1)“提示”:
必选项。
字符串表达式,在对话框中作为提示信息显示,可为汉字。
若要多行显示,必须在每行行末加回车符Chr(13)和换行符Chr(10)符或VB符号常数vbCrLf。
(2)“标题”:
可选项。
字符串表达式,在对话框的标题区显示;若省略,默认为应用程序名。
(3)“默认”:
可选项。
字符串表达式,当输入对话框中无输入时,则该默认值作为输入的内容。
(4)“x坐标位置、y坐标位置”:
可选项。
整型表达式,确定对话框左上角相对于屏幕左上角的x、y坐标,单位为twip。
该项省略时,对话框出现在屏幕水平、垂直中间的位置。
【注意】
各项参数次序必须一一对应,除了“提示”一项不能省略外,其余各项均可省略,处于中间的默认部分要用逗号占位符跳过。
例如,运行如下代码段,结果显示如图所示,当单击“确定”按钮后,变量strName的值为“李林”。
DimstrNameasString*20 ‘声明字符串变量strName的长度为20
Title="InputBox函数示例"
Msg1="请输入你的姓名"
StrName=InputBox(Msg1,Title,,200,200)
其实,这段代码可写为:
DimstrNameasString*20
StrName=InputBox(“请输入你的姓名”,"InputBox函数示例",,200,200)
但如果“请输入你的姓名”和"InputBox函数示例"这两个字符串在程序中重复出现,就没有定义Title、Msg1两个变量来得简洁!
变量名的命名可以随意,上面的代码完全可以这么写:
DimstrNameasString*20
a="InputBox函数示例"
b="请输入你的姓名"
StrName=InputBox(b,a,,200,200)
Msgbox函数与过程
MsgBox用于输出数据,它会在屏幕上显示一个对话框。
在对话框中显示消息,等待用户单击按钮,并返回所选按钮的整数值。
有函数和过程两种形式。
MsgBox函数格式:
变量=MsgBox(提示[,按钮][,标题]) 用来赋值!
MsgBox过程格式:
MsgBox提示[,按钮][,标题] 本身就是一条语句
说明:
(1)“提示”和“标题”的意义与InputBox函数中对应的参数相同。
(2)“按钮”:
可选项。
数值表达式,决定信息框按钮的数目和类型及出现在信息框上的图标类型。
该数值表达式的值由4部分(按钮数目、图标类型、默认按钮、模式)数值求和得到,它也可以用符号常量表示。
其设置见表3.1.1。
(3)MsgBox函数返回所选按钮返回值的意义见表3.1.2
(4)MsgBox过程与MsgBox函数的区别是:
MsgBox过程没有返回值,也不用圆括号“()”,所以常用于较简单的信息显示。
其他用法与MsgBox函数相同。
例如,在代码中加入以下语句,程序在运行中会打开图3-2所示的消息框。
Msg=”程序运行出错,继续吗?
”
Title=”Msgbox演示程序”
Resp=MsgBox(Msg,308,Title) (*)
IfResp=6then
Print“你选择了是!
”
Else
Print“你选择了否!
”
EndIf
注意:
(*)行308=4+48+256+0,即四部分之和:
4代表显示“是”和“否”按钮,符号常量为vbYesNo
48代表显示警告消息图标!
,符号常量为vbExclamation
256代表第二个按钮为默认按钮,此时第二个按钮为”否”按钮,所以它为默认按钮,256的符号常量为vbDefaultButton2
308是对的,4+48+256+0是对的,4+48+256是对的,vbYesNo+vbExclamation+vbDefaultButton2是对的,4+vbExclamation+256也是对的,总之,按钮值和符号常量是等价的,可以单独用,也可混合用,且4部分的次序是随意的。
同样,If语句也可写成IfResp=vbYesthen的形式。
Print方法
Print方法常用于在屏幕上输出信息。
例如,执行如下代码:
a=10:
b=15
c$=“欢迎使用VisualBasic”
Print“数值表达式a+b的值为:
”;a+b
Print
Print “字符串变量c$的值为:
”;c$ 注意,两项间用分号隔开!
运行结果如下:
数值表达式a+b的值为:
25
字符串变量c$的值为:
欢迎使用VisualBasic
【例3.2】用Print方法输出图形。
程序运行结果如图3-4所示。
PrivateSubForm_Click()
Fori=1to5
PrintTab(i);String(6-i,”*”) Tab(i)表示每行前面的空格数
NextI String(6-i,”*”)表示每行显示(6-i)个字符“*”
EndSub
图3-4
如果把每行看成一项,那么这个循环结构就相当于由5项构成的数列,而PrintTab(i);String(6-i,”*”)就相当于这个数列的通解。
就是数学建模嘛!
【注意】
当Tab(i)中i的值小于当前位置的值时,重新定位在下一行的i列。
例如,执行以下语句:
Printtab(5);“abcdefg”;tab(8);“1234567”
运行结果如下:
abcdefg
1234567
10.顺序结构
顺序结构就是程序的各语句按出现的先后次序执行。
在VisualBasic中顺序结构的语句主要有赋值语句、输入语句、输出语句等。
赋值语句
赋值语句是程序设计中最基本的语句,也是为变量和事件的属性赋值的最主要的方法。
赋值语句的一般形式为:
变量名=表达式 如height=175
或
对象名.属性=表达式 如Command1.visible=false
赋值语句的作用:
先计算右边表达式的值,然后赋给左边的变量或控件属性。
例如:
sum=100 '把数值常量100赋给变量sum
aver=sum/10 ’将表达式sum/10的值赋给变量aver
Text1.Text=”Hello!
” '为文本框显示字符串