第三章VisualBasic程序设计初步3.1窗体3.2VB语法基础3.3对象、属性、事件和方法的概念3.4窗体的属性3.5窗体的方法3.6窗体的事件3.1窗体控制按钮关闭窗体按钮最大化窗体按钮最小化窗体按钮标题栏当前窗体名称在Windows系统中,窗体是最常用的对象。Windows的窗体有类似结构和特点。窗体右上方有三个按钮,自左而右分别是:“最小化”按钮,“最大化”按钮和“关闭”窗体按钮。•单击“最小化”按钮,窗体消失,窗体缩小为屏幕底部任务栏上的一个按钮,表示它不是当前打开的窗体;单击该按钮可以恢复窗体。•单击“最大化”按钮,使窗体充满屏幕,该“最大化”按钮变成两个重叠的小方块;单击该按钮,恢复原来的窗体。•单击“关闭”按钮,关闭窗体。3.1.1窗体设计举例例1:设计一个VB程序,窗体上画有三个命令按钮,标题分别是“窗体变小”、“窗体变大”和“关闭窗体”。运行程序时,在窗体上装入一幅图片。单击“窗体变大”命令按钮时,窗体变大;单击“窗体变小”按钮时,窗体就小;单击“关闭窗体”按钮,结束程序的运行。窗体界面设计如右图对象属性设置窗体(名称)Form1Caption改变窗体尺寸命令按钮1(名称)cmdLargeCaption窗体变大命令按钮2(名称)cmdSmallCaption窗体变小!命令按钮3(名称)cmdExitCaption关闭窗体3.1.1窗体设计举例编写有关事件过程:PrivateSubForm_Load()Picture=LoadPicture(D:\flower.jpg)EndSub运行程序时,系统自动将窗体装入内存,触发Form_Load事件过程。Form_Load事件过程通常用来对窗体的属性和变量进行初始化。3.1.1窗体设计举例要改变窗体的大小尺寸,需要使用窗体的两个相关属性Height和Width。Height指窗体的高度,Width指窗体的宽度,单位为twip(缇),一英寸约等于1440twip。使窗体变小的过程代码如下:PrivateSubcmdSmall_Click()Form1.Height=Form1.Height-500Form1.Width=Form1.Width-500EndSub3.1.1窗体设计举例单击“窗体变大”按钮,窗体的Height及Width属性值在原有属性值的基础上增加500,使窗体的尺寸变大。窗体变大的过程如下:PrivateSubcmdLarge_Click()Form1.Height=Form1.Height+500Form1.Width=Form1.Width+500EndSub不断单击“窗体变大”命令按钮,Height和Width属性值不断递加,使窗体越变越大。3.1.1窗体设计举例“关闭窗体”按钮的事件过程如下:PrivateSubcmdExit_Click()EndEndSub“End”语句命令的作用是结束程序的运行。注意:一般来说,一个程序中应该包括结束程序运行的操作。3.1.1窗体设计举例例2:设计一个程序,当单击“改变位置”命令按钮时,使窗体的位置改变到屏幕的左上角,单击“还原位置”命令按钮又使它的位置还原,并在标签中显示出所在位置。对象属性设置窗体(名称)Form1Caption确定窗体的位置BackColor&H00FFFF80&(浅蓝色)BorderStyle1(FixedSingle)命令按钮1(名称)cmdMoveCaption改变位置命令按钮2(名称)cmdResetCaption还原位置命令按钮3(名称)cmdExitCaption退出标签(名称)Lable1Caption置空BorderStyle1(FixedSingle)属性BackColor的值决定窗体的背景颜色。属性BorderStyle决定窗体的“边界风格”(BorderStyle)。它有4种可以选择的值:0(None):窗口无边界;1(FixedSingle):窗口的边界为单线条,且运行期间窗口的尺寸是固定的(即不能改变其大小);2(Sizable):窗口的边界是双线条,且运行期间可以改变窗口的尺寸;3(FixedDouble):窗口的边界是双线条,且运行期间不可以改变窗口的尺寸。3.1.1窗体设计举例3.1.1窗体设计举例程序开始运行时,执行Form_Load事件过程,进行初始化窗体的工作,该事件过程如下:PrivateSubForm_Load()Form1.Left=2000Form1.Top=2000Label1.Caption=Left值是:2000,Top值是:2000EndSub运行程序,将2000分别赋给窗体的Left和Top两个属性。Left属性指明窗体左边界距屏幕左边界的距离(x轴方向)。Top属性指明窗体窗口顶部距屏幕顶部的距离(y轴方向)。确定了Left和Top属性值,也就确定了窗体在屏幕上的位置。3.1.1窗体设计举例单击“改变位置”命令按钮时,把窗体移动到指定的位置,执行cmdMove_Click以下事件过程。PrivateSubcmdMove_Click()Form1.Left=100Form1.Top=100Label1.Caption=Left值是:100,Top值是:100EndSub程序将窗体的位置改变到屏幕的左上角,即坐标为(100、100)的位置。分别将100赋给窗体的Left和Top两个属性,并把这两个值显示在标签中。3.1.1窗体设计举例单击“还原位置”命令按钮,应恢复窗体的初始位置,只需将最初的Top和Left属性值重新赋给这两个属性即可。其过程代码如下:PrivateSubcmdReset_Click()Form1.Left=2000Form1.Top=2000Label1.Caption=Left值是:2000,Top值是:2000EndSubLeft属性值及Top属性值均为2000,窗体回到原来位置。3.2VB语法基础3.2.1VB的数据类型计算机能够处理不同类型的信息,如数值、文字、声音、图形、图像等,这些统称为数据。数据可以分为不同的种类,称为数据类型。不同类型的数据,在内存中的存储结构不同,占用空间不同,取值范围不同,能够对数据进行的操作也不同。程序中的数据有两种表示形式:常量和变量。常量是一个固定的值,如3、4.5。变量的值在程序运行期间可以改变,也可以先后向一个变量赋予不同的值。3.2.1VB的数据类型VB的两大类数据类型:基本数据类型:包括数值类型、字符类型等用户自定义数据类型:利用基本数据类型构造的数据类型。数据的类型不同,能够进行的操作也不同。基本数据类型占用字节值的有效范围类型声明符Integer(整型)2-32768~32767%Long(长整型)4-2147483648~2147483647&Single(单精度实型)4+1.40E-45~+3.40E38!Double(双精度实型)8+4.97D-324~+1.79D308#Currency(货币类型)8-922337203685477.5805~922337203685477.5807@String(字符串类型)1/每字符0~65535个字符$Byte(字节)10~255Boolan(布尔型)2True或FalseDate(日期类型)81/1/100~12/31/9999无Variant(变体类型)上述有效范围之一3.2.1VB的数据类型某个变量的数据类型可通过函数VarType()测试。Variant数据类型,称为变体类型或通用类型。变体类型可以表示上述任何一种数据类型。VarType函数值数值类型0空1Null2整型3长整型4单精度5双精度6货币型7日期型8字符串型3.2.1VB的数据类型PrivateSubcmdTest_Click()DimVar1AsVariantInt1=123Long1=186&Single1=12.6!Double1=34.5Str1=abcdCur=8886@Da=#10/21/1997#PrintVarType(Var1),VarType(Int1),VarType(Long1),VarType(Single1)PrintVarType(Str1),VarType(Cur),VarType(Double1),VarType(Da)EndSub例:编写一段程序,给不同的变量赋予不同的值,利用VarType函数测试这些变量的数据类型。在窗体上添加一个名称为cmdTest的命令按钮,编写相应的事件过程。Var1被定义为Variant(变体型)变量,其它各变量(如Int1,Long1,Single1等)均未声明,因此都作为Variant类型处理。3.2.1VB的数据类型当分别对7个Variant型变量赋值后,再用VarType函数测试这8个变量实际的数据类型。运行此程序,输出结果如图。Var1是变体型变量,由于程序中未对它赋值,因此VarType(Var1)的值为0。3.2.1VB的数据类型仅有基本数据类型有时不能满足设计的需要。有时需要将不同类型的数据组合成一个有机的整体,以便于引用。这样一个整体是由若干不同类型的、互相有联系的数据项组成。Type语句能够允许用户自定义数据类型。一般形式:Type类型名元素名As类型元素名As类型元素名As类型……EndType例如TypeEmployeeEmpNoAsIntegerNameAsString*10AgeAsIntegerTelAsString*10AddressAsString*20EndType3.2.2变量名和变量值变量(variable):在程序执行过程中,其值可以发生变化的量。变量需要有一个名称,作为标识,即变量名。变量名的命名规则:1)第一个字符必须是字母;2)第二个字符及其后的字符可以是字母、数字及下划线;3)长度不能超过255个字符;4)可用表示变量类型的字符(如:$,%等)作为变量名的最后一个字符;3.2.2变量名和变量值5)不能将VB语言中规定的保留字(如语句命令、函数名等)作为变量名使用;6)在变量名中,大小写字母是等价的;7)变量名中间不能有空格;8)在同一个程序模块中,不能有相同的变量名;9)变量名的前面可以有对象名,指明是哪个对象中的变量,在对象名和变量名之间用句点(.)相隔;3.2.3变量的声明在VB程序中应当对变量进行声明声明的作用是告诉VB系统该变量是什么类型,以便系统据此对该变量进行适当的内存分配(不同类型的数据在内存中所占的存储空间和存储方式是不同的)。3.2.1VB的数据类型1.用Dim声明变量Dim变量名As数据类型DimNameAsStringDimSumAsLongDimNumAsIntegerDimXInteger,YAsSingleDim变量名省略As子句,未指定类型,系统默认为变体Variant类型的数据。例如,声明名称为What的变体类型变量:DimWhat可以同时定义两个变量:DimxasInteger,yasInteger=DimX,YAsInteger?3.2.3变量的声明2.用Static声明变量使用Static声明静态变量,语句格式如下:Static变量名As数据类型一个过程执行结束时,过程中所用到的Static变量值被保留,再次执行这个过程时,变量的初值是上次调用结束时被保留的值,而用Dim语句声明的变量在过程结束时不保留。例:PrivateSubcmdExec_Click()StaticaAsIntegerDimbAsIntegera=a+1b=b+1Printa=;a,b=;bEndSub执行四次的结果:3.2.4数组数组:把一组具有相同属性、相同类型的数据用一个统一的名字作为标识,为数组。数组中的每一个数据称为一个数组元素数组元素用数组名和该数据在数组中的序号来标识,序号称作下标。在VB中如果没有特别的说明,数组元素的下标是从0开始的,即第一个元素的下