1、VB编程入门,Visual Basic 程序设计教程,Visual Basic程序设计教程,2,本章将介绍有关VB程序的构成和数据类型以及变量的定义和使用、表达式以及基本的输入输出操作。这些知识是编程的基础。我们将通过简单示例的分析,帮助理解如何进行VB编程。,Visual Basic程序设计教程,3,本章主要内容: 确定数据的性质:数据类型 两种数据表达:常量和变量 算术运算符和表达式 VB编程的开始:使用窗体 赋值和输入输出,Visual Basic程序设计教程,4,所谓编程就是针对要解决的任务,设计解决问题的步骤,使用计算机程序设计语言进行描述,最后通过编码、测试、修改等过程实现编程的目
2、的。 编程有两个方面的要求: 一 需要理解编程的任务并给出算法 二 要使用特定的计算机语言具体地表示这些算法。,2.1 概 述,Visual Basic程序设计教程,5,1加法器界面设计,2.2 一个简单的加法器程序,Visual Basic程序设计教程,6,2编写程序代码,Visual Basic程序设计教程,7,Private Sub CmdAdd_Click() 计算”按钮代码Dim Temp As LongTxtNum1.Text = “TxtNum2.Text = “TxtSum.Text = “TxtNum1.Text = InputBox (“请输入第一个数“)TxtNum2.T
3、ext = InputBox(“请输入第二个数“)Temp = Val(TxtNum1) + Val(TxtNum2)TxtSum.Text = Temp End Sub Private Sub CmdExit_Click() “退出”按钮代码FrmAdder1.HideMsgBox (“加法器程序运行结束,谢谢使用“)End End Sub,Visual Basic程序设计教程,8,数据是程序处理的对象。为了更好地处理各种各样的数据,VB定义了多种数据类型,数据类型定义了值的范围并确定了它能够进行的操作。,2.3 确定数据的性质:数据类型,Visual Basic程序设计教程,9,Visua
4、l Basic程序设计教程,10,使用数值类型,1. 字节型(Byte) 字节型数可以表示无符号的整数,0255 2. 整型(Integer)和长整型(Long) 不带小数部分的数,表示正整数、负整数和零 整型数: -3276832767 98、98 长整型数:-21474836482147483647 45678、45678&,Visual Basic程序设计教程,11,3. 单精度型(Single)和双精度型(Double) 浮点数。表示带有小数部分的数 表示数的范围大,但有误差。 如超出某个表示范围,则用科学记数法 例如:4.53E8(4.53108),8.173E-14,3.14D23
5、 Single保留7位十进制有效位,Double保留15位 4. 货币型(Currency) 专门为处理货币而设计的数据类型 它可最多保留小数点右边4位和小数点左边15位,Visual Basic程序设计教程,12,字符型(String) 用双引号括起来的一串字符。例如Canton”、”1+2=?”、”Good Morning”等 “”称为起止界限符。 字符串长度。分变长字符串(长度不固定)和定长字符串(长度固定) 在VB中,把汉字作为一个字符来处理。 例如:“浙江大学 浙江杭州 中国” 该字符串长度为12,含空格,使用字符型(String),Visual Basic程序设计教程,13,逻辑型
6、与日期型,逻辑型(Boolean) 逻辑型又称布尔型,其数据只有True(真)和False(假)两个值逻辑值和数值类型进行转换的时候,它们是非对称的: (1)数值数据转换为布尔值时,0对应False,非0对应为True (2)布尔值转换为数值数据时,False对应0,True对应为 -1。,Visual Basic程序设计教程,14,日期型(Date) 表示日期和时间 用两个“#”符号把日期和时间的值括起来 如:#08/20/2001#、#2001-08-20# #12/12/2005 11:35:35 PM#,Visual Basic程序设计教程,15,变体型和对象引用型,变体型(Varia
7、nt) 变体型数据是一种可变的数据类型,可以存放任何类型的数据 当指定变量为Variant变量时,VB会自动完成必要的转换,Visual Basic程序设计教程,16,在程序中不特别说明时,VB会自动将该变量默认为Variant型变量。 例:Temp=“22” 字符串 Temp=22 数值 Temp=#01/01/2002# 日期 对象引用型型(Object) 对象引用型型数据可用来表示应用程序中的对象,Visual Basic程序设计教程,17,自定义数据类型,VB为用户了提供自定义数据类型,以满足用户的需求。实际上自定义数据只是把VB已有的数据类型重新组合或者构造为一个新类型。例如我们要给
8、员工设计一个工资数据类型, 这个类型中有姓名、工号和工资数,可以使用以下方法定义: Type Pay 姓名 As String*8 工号 As Long 工资 As Single End Type,Visual Basic程序设计教程,18,Visual Basic 6.0的常用数据类型,2.3确定数据的性质:数据类型,Visual Basic程序设计教程,19,Visual Basic 6.0的其他数据类型,Visual Basic程序设计教程,20,说明: (1) 不同类型的数据,所占的存储空间不一样。 (2) 数据的类型可在数据之后加上一个类型符来表示,例如,413&,86!,104.6
9、7#等。,Visual Basic程序设计教程,21,2.4 常量与变量,2.4.1 常量 在程序运行期间其值始终保持不变的量 两种形式的常量:文字常量和符号常量 文字常量又分为数值常量、字符串、逻辑值和日期等 1数值常量 例如2,35.567,它们直接出现在程序中。,Visual Basic程序设计教程,22,2字符串常量 它是用双引号括起来的各种有效字符串组成的,如“123“,“AbcD“,“程序设计“等。字符串可以为空。 字符串常量的长度为两个引号之间所有的字符数,包括空格。VB规定定长字符串最大长度为32767。,Visual Basic程序设计教程,23,3逻辑常量 就是逻辑值,Tr
10、ue和False。 4日期常量 表示日期和时间的常量, 例如:#12-12-2005#,Visual Basic程序设计教程,24,2.4.2 符号常量 符号常量是在程序中用符号表示的常量。符号常量定义一个符号(字符串)代表一个文字常量 格式: PublicPrivate Const常量名 As 数据类型=表达式 例如:Const PI=3.14159 As Single 使用符号常量主要是为提高程序的可读性。另外,如果需要进行常数的调整,只需要在定义的地方一次性修改就可以了。,Visual Basic程序设计教程,25,2.4.3 变量和声明变量 1变量是什么 变量是在程序运行期间其值可以发
11、生变化的量。 在程序运行时,数据是存放在内存中的。因此变量就是指示程序将到哪个内存单元去存取数据,即变量与内存单元有关。使用变量名标识不同的变量,同时要给出变量数据的类型。因此,VB变量由数据类型和变量名组成。 程序中选择使用常量还是变量,是根据它们是否需要变化而决定的。,Visual Basic程序设计教程,26,2VB变量的特点 (1)可变性。向变量存数据,会改变变量原来的值。 (2)从变量中取数据,变量中原来的值不会改变,因此在程序中,一个变量的值可以被反复取用而不会导致数据的改变,“取之不尽”。这是变量的可复制性。 (3) 变量的取值和它的类型有关,但VB能够进行自动转换。,Visua
12、l Basic程序设计教程,27,3给VB变量命名 应遵守一些规则: (1)变量名必须以字母开头; (2)只能由字母、数字和下划线组成。不能含有小数点、空格等字符; (3)字符个数不得超过255个;,Visual Basic程序设计教程,28,(4)不能使用VB的关键字(如语句名、函数名等)。例如,Print、Sub、End等 (5)变量名在一个程序区域内不能同名。 (6) 不区分变量名中字母的大小写,一般情况下变量的第一个字母以大写表示。变量取名应使用能够望名知义的单词或者缩写等,提高程序的可读性。,Visual Basic程序设计教程,29,4. 变量的声明变量的声明就是向程序说明要使用的
13、变量。有以下2种方法(显式声明与隐式声明) (1) 声明变量(显式声明) 用Dim、Public、Private或Static语句来声明变量例如:Dim sum As Integer 把sum定义为整型变量,Visual Basic程序设计教程,30,(2)隐式声明 不加说明就直接使用变量,此时默认的变量类型为变体类型(Variant) 也允许使用类型符来声明变量的类型,如Num%,Sum!(3)定义多个变量,Visual Basic程序设计教程,31,2.4.4 强制要求必须声明变量:Option Explicit Option Explicit一般情况下,该语句放置在程序模块的外部开始部分
14、,强制要求所有变量必须显式声明后才能使用。Option ExplicitPrivate Sub CmdAdd_Click() End Sub,Visual Basic程序设计教程,32,2.4.5 VB的关键字VB有许多关键字,也叫做保留字,它们为VB系统本身所用,具有特定的含义。这些已经被VB使用了的单词或者缩写就是“关键字”。关键字不能被使用作为用户定义的变量名,也不能被编程者重新定义使用。如我们已知的:As,Dim,Private,Sub,End,Integer,Long,String,Option Explicit,Date,Const,等等。,Visual Basic程序设计教程,3
15、3,VB有五类表达式:算术表达式、字符串表达式、日期表达式、关系表达式和逻辑表达式,2.5算术运算符和表达式,算术运算符,Visual Basic程序设计教程,34,1除法计算机使用 “/”和“ ”代表数学中的除号。“/”用于浮点数除,它将产生一个有小数部分的商。而“”则是整数除法,它在进行除之前先将运算数四舍五入,结果为丢掉小数部分取其整数部分。注意下面的几个例子:3/2 结果为1.532 结果为13.52 结果为2,Visual Basic程序设计教程,35,2取模运算Mod取模运算是取整除后余数的整数部分。VB支持整数和带小数的数的取模运算。如果是带小数的,则在运算前进行四舍五入操作。注
16、意下面的例子:13 Mod 3 结果为1,即余数为13.5 Mod 2 结果为0。先将3.5四舍五入为4,除2的余数为07 Mod 2.6 结果为15 Mod 0.49 除数为0错误(如果你把0.49改为0.5和0.51,试试看会发生什么?),Visual Basic程序设计教程,36,2.5.2 算术表达式算术表达式也称数值表达式,是用算术运算符把数值型常量、变量、函数连接起来的式子。表达式的运算结果是一个数值例如:(A1B1/3X0.5)*Sin(X),Visual Basic程序设计教程,37,2.5.3 算术运算符的优先规则 运算符优先级 (乘方) -(求负) */ Mod +- 同级
17、左到右,Visual Basic程序设计教程,38,说明:(1)/和的区别:1/2=0.5,12=0 (2)Mod用来求整型数除法的余数。例如:9 Mod 7 结果为 2 (3)在表达式中乘号不能省略,如a*b不能写成ab(或ab) (4)括号不分大、中、小,一律采用圆括号。可以嵌套使用例如,xx(x+1)+1 x*(x*(x+1)+1),Visual Basic程序设计教程,39,窗体是我们进入VB编程所遇到的第一个对象,它是进行程序界面设计的基础平台。在程序运行时它就是程序的实际窗口。 使用窗体的“属性”定义窗体的外观 使用窗体的“方法”定义窗体的行为 使用窗体的“事件”定义与用户之间的交
18、互 因此了解窗体(包括后续的控件等对象),就是围绕它的属性、方法和事件展开。这也是学习VB对象编程的主要思路。,2.6 VB编程的开始:使用窗体,Visual Basic程序设计教程,40,2.6.1 一个使用窗体显示文本的例子,Visual Basic程序设计教程,41,窗体的绝大多数属性可以在属性窗口中设置,也可以在程序代码中设置,在程序中输入窗体对象名称和“.”分割后会自动跳出窗体的属性和方法,在这里可以区分属性和方法。,2.6.2 窗体的属性,Visual Basic程序设计教程,42,窗体的常用属性,Visual Basic程序设计教程,43,Visual Basic程序设计教程,4
19、4,Visual Basic程序设计教程,45,Visual Basic程序设计教程,46,2.6.3 窗体的方法窗体方法就是对窗体的操作行为。方法使用格式为:Object.方法名 可选参数Object为窗体对象的名称(Name),如果在当前活动窗体,可省略Object或者用关键字Me。,Visual Basic程序设计教程,47,1显示窗体方法(Show)功能:显示窗体对象。Show方法的使用格式为:Object.Show Style使用Show方法如果没有指定窗体名称,则默认当前活动窗体。参数Style是一个整数,决定窗体的模式,取值0为无模式,1为有模式,Visual Basic程序设计
20、教程,48,2隐藏窗体方法(Hide)功能:隐藏窗体。注意这只是不显示窗体而不是卸载。要再次显示窗体,使用Show方法即可。Hide方法的格式为:Object.Hide如果Object没有被指定,则当前活动窗体被隐藏。,Visual Basic程序设计教程,49,3移动窗体方法(Move)Move方法可以移动或者改变窗体的大小。使用格式为: Object.Move Left ,Top,Width,Height其中,Left是必选参数,Top是可选参数,分别代表窗体的x,y方向的坐标。Width和Height为窗体移动到新位置后的高度和宽度。坐标参数的单位默认为缇(Twip,1/1440英寸)。
21、可在窗体属性ScaleMode中选择参数单位。,Visual Basic程序设计教程,50,4清除窗体方法(Cls)Cls(Clear Screen)是清除窗体上的显示的文本和图形。如Me.Cls为清除当前窗体的显示。 5打印方法(Print)Print是在窗体上输出文本。 6打印窗体方法(PrintForm)把整个窗体作为位图图像输出到打印机。该方法使用的格式为:Object.PrintForm。,Visual Basic程序设计教程,51,2.6.4 窗体识别的动作:事件在窗体中使用某种事件触发一个过程,以便完成某个任务,因此我们也叫它为事件过程。例如:Private Sub Form_L
22、oad()End Sub,Visual Basic程序设计教程,52,这里程序就是窗体的装载事件过程,称为Load过程,Load就是窗体的一个事件。 窗体事件过程的一般格式为:Private Sub Form_事件名(参数表) 我们在这里编写处理事件的程序代码 End Sub,Visual Basic程序设计教程,53,窗体常用事件: 1.装载事件(Load)程序运行时,通过Load事件把窗体装载到内存。 2. 卸载事件(Unload)窗体卸载时触发Unload事件,使窗体从内存中退出并从屏幕 上消失。Private Sub Form_Unload (Cancel As Integer),Vi
23、sual Basic程序设计教程,54,3. 活动/非活动事件(Activate/Deactivate)Private Sub Form_Activate()Private Sub Form_Deactivate()使用Show可触发这个活动过程,使用Hide触发非活动过程。,Visual Basic程序设计教程,55,4. 重绘窗体事件(Paint/Resize)当窗体被移动或者改变大小时,触发Paint事件。如果在窗体上有图形输出,则可以使用Paint事件过程重绘图形。 窗体改变了大小,原来窗体上的控件的布局比例发生了改变,为此可以进入Resize事件过程重新调整控件的布局,使之适合新的窗
24、体大小。,Visual Basic程序设计教程,56,2.6.6 Tab键和焦点 焦点对象的活动状态。 改变对象焦点的方法:1.使用鼠标点击或者使用Tab键使用Tab键焦点的移动次序与对象的Tabindex属性有关。,Visual Basic程序设计教程,57,2.程序中改变对象. SetFocus对象. LostFocus 一个对象能否得到焦点还与对象本身、对象的其他属性(Enabled)有关。,Visual Basic程序设计教程,58,计算机的工作原理:数据输入处理机(程序)信息输出 在构造一个程序时必须考虑:如何给变量赋值,如何输入数据并如何把有关计算结果输出。赋值就是把一个合适的值(
25、数或字符)存入指定的变量中,而值的来源可以是程序直接产生,也可以是从键盘输入,也可以来自其他程序的传送或来自于文件。,2.7 赋值和输入输出,Visual Basic程序设计教程,59,2.7.1 如何进行赋值操作 赋值语句的格式如下:Let 变量名 = 表达式或者:变量名 = 表达式 例如:Sum = 100 x = x + 1CmdAdd.Caption = “计算”,Visual Basic程序设计教程,60,使用赋值语句要注意以下问题:1“=”不是数学中的等号的意思,是一个赋值的运算符,叫做赋值号。 2对变量的赋值后,以新值代替了原来的值。3在表达式中的变量应先赋值。如果是首次直接被用
26、在表达式中,则VB自动赋初值:(1)如果是数值型变量,则自动赋初值为0。(2)字符型变量的初值为空。,Visual Basic程序设计教程,61,4同一个变量出现在赋值号的两边的意义不同。在右边的变量是取出变量的值参与运算,在左边则是保存右边表达式结果值。5一般要求变量的数据类型和表达式的结果值的类型一致,或者说表达式的值能够被所赋值的变量的类型所接纳。,Visual Basic程序设计教程,62,【例2-3】计算半径为5的圆面积和圆周长。 Private Sub Form_Click()Const PI = 3.141526 定义常量Dim R As integer, Area As Sin
27、gle, Perimeter As Single 定义变量R = 5 给半径变量赋值Area = PI * R * R 计算后的面积值赋给变量AreaPerimeter = 2 * PI * R 周长值赋给变量ParimeterPrint “半径”;R,”面积”;Area,”周长”;Perimeter 输出半径、面积。周长 End Sub,Visual Basic程序设计教程,63,2.7.2 使用输入对话框InputBox函数 【例2-4】计算半径为R的圆面积和周长,半径值由键盘输入。 Private Sub Form_Click()Const PI = 3.141526Dim R As I
28、nteger, Area As Single, Perimeter As SingleR = Val(InputBox(“请输入圆的半径:“, “输入“)Area = PI * R * RPerimeter = 2 * PI * RPrint “ 半径“; R, “面积“; Area, “周长“; Perimeter End Sub 这个例子中使用了InputBox函数产生输入对话框。,Visual Basic程序设计教程,64,1输入对话框的使用 InputBox函数的使用格式如下:InputBox(提示,标题,默认值,xpos,ypox) 它们的含义如下: (1)提示信息。这是InputB
29、ox对话框所必须的信息,也可以使用空文本,即“”。 (2)标题。这是在对话框窗口标题栏显示的内容。可设置,也可以没有标题。,Visual Basic程序设计教程,65,(3)默认值。在输入框中的默认输入。系统默认为空,可选。 (4)xpos和ypos为对话框的左侧与屏幕左边的距离和上边与屏幕顶部的距离值。可选。,Visual Basic程序设计教程,66,2在提示中使用多行文本如果提示信息比较多,可以使用ASCII控制符回车Chr(13)和换行符Chr(10)产生另起一行。例如:提示信息为“请输入圆的半径” + Chr(13)+ Chr(10)+“使用正整数” , 产生如图效果,Visual
30、Basic程序设计教程,67,3使用转换函数 InputBox函数接受的是文本,也就是字符型数据,在程序中根据变量类型不同,可以使用转换函数。如:R = Val(InputBox(“请输入圆的半径:“, “输入“) 这里的Val就是转换函数,将文本类型的数据转换为整型数以便参加运算。VB提供了在不同类型数据之间的转换。,Visual Basic程序设计教程,68,2.7.3 使用Print方法输出数据使用Print在对象中显示(打印)输出文本。使用格式如下:对象名.Print 表达式 ,表达式 1对象名一般情况下,Print输出到窗体或者图片框。在本窗体中输出,可以缺省对象名。,Visual
31、Basic程序设计教程,69,2表达式Print方法支持多个表达式的输出,可输出数字、文字字符、日期、逻辑值等。如果Print后面没有任何表达式,则输出空行(在显示效果上相当于回车换行)。,Visual Basic程序设计教程,70,3输出格式 多个表达式输出,可以使用分号和逗号分隔。 (1)逗号分隔(标准格式输出)。逗号后的下一个表达式按照14个字符的空间分开显示。实际分隔位置还与所在输出行的宽度和分隔的数目有关。 (2)分号分隔(紧凑格式输出)。后一个表达式的值接着前一个表达式的输出。,Visual Basic程序设计教程,71,(3)在Print语句最后使用逗号或分号结束,不换行,下一个
32、Print接着按格式输出。 (4)使用Spc()和Tab()函数,前者控制插入空格,后者确定列位置,Visual Basic程序设计教程,72,例: Private Sub Form_click()Me.FontSize = 16Print 空行Print “A=“; 1, “B=“; 2Print 1, 2; 3, 4Print “A“; Spc(4); “B“Print Tab(10); “B“Print “1234567890“ End Sub,Visual Basic程序设计教程,73,2.7.4 使用消息对话框MsgBox函数 MsgBox函数提供了一个显示应用程序运行信息的标准途径
33、,如图所示:,MsgBox的格式如下: 变量名 = MsgBox( 提示, 对话框类型 , 对话框标题 ),Visual Basic程序设计教程,74,(1)使用形式: MsgBox有两种使用形式,注意区分,如:A = MsgBox(“您确定要退出吗?“, vbOKCancel + vbDefaultButton2, “退出“)和MsgBox “您确定要退出吗?“, vbOKCancel + vbDefaultButton2, “退出“格式1是具有返回值的使用,程序根据用户的不同选择把选择结果赋值给变量A。格式2没有返回值。,Visual Basic程序设计教程,75,(2)提示必选参数项。如
34、果显示多行,可使用Chr(13)+ Chr(10) 。 (3)对话框标题在对话框标题栏显示的信息文本。,Visual Basic程序设计教程,76,(4)对话框类型类型参数由三部分组成,分别确定对话框中的按钮形式、默认的焦点在哪一个按钮上和按钮使用的图标。把按钮形式、焦点选择、图标三组参数中各选一个进行组合,或直接把它们对应的符号常量进行相加确定对话框类型值,Visual Basic程序设计教程,77,Visual Basic程序设计教程,78,Visual Basic程序设计教程,79,(5)返回值使用一个变量保存MsgBox函数返回值,返回值的符号常量和有关描述如表所示。,Visual B
35、asic程序设计教程,80,Visual Basic程序设计教程,81,(6)省略参数项如果只给出提示,系统默认为对话框类型参数值为0,没有对话框标题。如果要省略某一个参数项,需要加上逗号分隔符。例如:A = MsgBox ( “您确定要退出吗?”, , “退出” ),Visual Basic程序设计教程,82,【例2-5】在窗体上设置三个命令按钮,分别为“放大窗口”“缩小窗口”和“结束程序”。点击“放大窗口”“缩小窗口”窗体相应进行放大和缩小操作,并在窗体上显示操作后窗口的宽度和高度,点击“结束程序”则程序结束运行退出。,2.8 程序举例,Visual Basic程序设计教程,83,【例2-6】在窗体上放置一个标签显示文本,单击窗体空白处输入字体和字号使显示的文本随之变化。使用三个命令按钮“隐藏显示”“恢复显示”和“程序结束”。其中“隐藏显示”有效时“恢复显示”处于无效状态,反之亦然。,