1、Visual Basic程序设计教程(第二版)目录 带*者可略去不讲,让学生自学即可。重点介绍第1、2、3、4、5、6、7和9章,第8章自学,第10章可在应用程序开发中讲解。第2章 数据类型、运算符和函数第3章 程序的控制结构及应用第4章 数组及应用第5章 常用标准控件第6章 过程与函数第8章 图形操作第10章 数据库应用第7章 菜单与界面设计第1章 VB程序设计概述第9章 文件操作第0章 引言第0章 引言0.1 VB语言的地位、作用与特点语言的地位、作用与特点 Visual Basic(简称VB),是美国微软公司推出的一款功能强大的软件开发工具。Visual 意即可视的、可见的,指的是开发像
2、Windows操作系统的图形用户界面的方法。Basic 实际上是一个短语的缩写,这个短语就是 Beginners all_purpose symbolic instruction code,其中文意思为“初始者通用符号指令代码语言”。Visual Basic(简称VB)语言比较容易学,能够很快入门,其特点如下:1、易于学习和使用。VB基于图形界面的开发环境使开发者对各种功能一目了然、容易理解。2、开发高效,功能强大。程序员可以轻松使用VB提供的各种功能组件(对象)快速搭建一个应用程序。其基本思路是把复杂的设计问题分解为多个能够完成独立功能且相对简单的对象集合。3程序运行时,采用事件驱动方式。即
3、程序在运行时,可由用户操作触发也可以由系统或应用触发程序的执行,若用户未进行任何操作(未触发事件)则就处于等待状态,整个应用就是由彼此独立事件过程构成。4、广泛的用户基础。VB是世界上使用人数最多的语言之一,更多的的开发者会带来更多的思想,更多的交流和更多的使用机会。0.1.1 特点数据库结果VB各种控件工具动作利用VB编写的程序代码通过查询得到结果0.1.2 VB地位作用和发展 地位和作用。VB在应用程序开发的地位和作用,如下图中的虚框所包围的部分。VB的发展。VB从1991年诞生以来,现在已经18年了。Basic是微软的起家产品,微软当然不忘了这位功臣。随着每一次微软技术的浪潮,VB都会随
4、之获得新生。可以预见,将来无论微软又发明了什么技术或平台,VB一定会首先以新的姿态登上去的。如果你想紧跟微软,永远在最新的技术上最快速地开发,你就应该选择VB。实际上,VB之所以仍然具有强大的生命力,还因为它在微软的办公系列产品Word、Excel、Powerpoint等软件中有着广泛的应用。VB镶入到这些软件后被叫做VBA,就是宏,这样一来,将某些特殊的处理要求用函数或编程的的形式交给用户,大大提高了这些软件的灵活性、适应性和自动化程度。今天VB已进入.NET时代,目前VB.NET最高版本是VB.Net 2013版。0.2 程序的执行方式和运行环境 解释型。执行过程如右图所示。应用程序源程序
5、必须在编程环境的支持下才能运行。执行方式类似于“同声翻译”,一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。编译型。执行过程如左图所示。编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,即生成直接运行于操作系统之上的可执行文件.exe。使用比较方便、效率较高、保密性好。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(*.OBJ)才能执行。例如VB、VC、VFP、D
6、elphi等。源程序源程序程序设计语言程序设计语言操作系统操作系统计算机硬件计算机硬件(a)解释型源程序源程序程序设计语言程序设计语言编译生成的编译生成的可执行程序可执行程序操作系统操作系统计算机硬件计算机硬件(b)编译型0.3 面向对象的基本概念“对象”与“类”的概念 在在VB中,采用构件(计算机中,将代码和中,采用构件(计算机中,将代码和数据封装起来的一个部件)拼装的方式进行程序数据封装起来的一个部件)拼装的方式进行程序设计,这里的构件我们称为设计,这里的构件我们称为对象对象。任何事物都可以被看作任何事物都可以被看作“对象对象”(Object),),而而“类类”(Class)则是同种对象的
7、总称。)则是同种对象的总称。例如:例如:“人人”是一个类,每个具体的人是一是一个类,每个具体的人是一个对象。个对象。在程序设计中,类和在程序设计中,类和对象是事先定义好的。对象是事先定义好的。例如:例如:“按钮按钮”是一是一个类,每个具体的按钮是个类,每个具体的按钮是一个对象。一个对象。属性名称=XX 材料=XX直径=XX颜色=XX厚度=XX方法飘浮上升下降膨胀缩小爆炸事件被释放被扎被打气被放气对象:一只气球面向对象的PME模型 任何对象都可以从以下三个方面进行描述:“属性”(Property):对象所具有的特性,对象在某时或某地的具体牲或状态,称为“属性值”。对象的属性分为3种:只读属性、运
8、行时只读属性和可读写属性。“方法”(Method):对象可能执行的操作或行为。“事件”(Event):对象可以识别并作出反应的外部刺激(外界产生的一些能够激活对象功能的消息),如敲门、下课铃声、学生提问等。以下是两个生活事例。一个是一只气球,第二个是人。由同种对象形成一个类,气球类不同对象之间的关系 一个“系统”是由多个相互联系的对象组成(对象的数目和种类由系统的复杂程度决定)。同一系统中的对象之间通过相互作用(方法与事件)来改变各自的属性,使整个系统保持运动和发展。对于同一个对象,它的属性、方法和事件之间存在极为密切的关系:事件的发生方法的执行属性的改变。本课程使用:VB 6中文企业版SP6
9、WinXPMSDN帮助0.4 Visual Basic 简介Visual Basic 发展史VB 1.0 VB 3.0 VB 4.0 VB 5.0 VB 6.0 VB.NET 1.0 VB.NET 200720世纪90年代初 1997年 1998年 2001年 2007年中文学习版中文专业版中文企业版VB.NET 20132013Visual Basic 6的安装和启动方法VB 6的安装方法,参见课堂安装演示操作。VB 6的启动方法,如下图所示。(1)“开始”按钮(2)“程序”子菜单(3)“VB6”子菜单(4)此菜单项启动VB集成环境返回目录第1章 VB程序设计概述1.3 VB集成开发环境1.
10、4 VB程序的构成和编程步骤1.5 窗体的属性、事件和方法1.6 基本控件及其使用1.7 焦点和TAB顺序1.8 几个常用系统对象*1.2 可视化编程的基本概念1.1 一个例子求圆的周长和面积1.1 一个例子求圆的周长和面积 【例1-1】下面我们设计一个应用程序,程序运行时,用户可通过键盘在程序界面中输入任意圆的半径,单击“计算”按钮后,可计算出该圆的周长和面积,如图1-1所示,设计界面如图1-2所示。程序设计操作步骤如下:1建立新工程 新建一个工程。方法1:启动VB时,系统显示“新建工程”对话框,如图1-3所示。在对话框的选项卡中选择“标准EXE”,然后单击“打开”按钮,即可建立新的工程,进
11、入VB的集成开发环境,如图1-4所示。图1-1设计界面图1-2运行界面图1-3 “新建工程”对话框 单击工具箱中的“标签”图标,然后在窗体的适当位置画出标签控件,标签内自动标有“Label1”、“Label2”等字样,本题需要3个标签;3个文本框Text13和2个“命令按钮”Command12。方法2:在VB的“文件”菜单中选择“新建工程”命令,亦可建立新的工程。图1-4VB集成开发环境添加控件 如果对绘制好的程序界面不满意,还可以调整,改变界面中的控件大小和位置。调整方法和在Word中调整图片的大小和位置的方法一样。标签、文本框、命令按钮以及窗体等都可以调整大小和位置。多余的控件可以删除,还
12、可以通过“格式”菜单“锁定控件”命令锁定控件。设置完用户界面后,窗体的结构如图1-5所示。调整控件的大小和位置图1-5 应用程序界面 用户界面由8个控件对象和一个窗体对象构成。每个对象都有默认的属性,如Caption属性,窗体对象为“Form1”,第1个命令按钮为“Command1”等。为了使界面符合用户的要求,应当对每个对象的属性进行修改。设置窗体Form1的属性。单击窗体的空白区域,使窗体成为活动对象,在属性窗口中找到属性Caption,将其值改为“求圆的周长和面积”。设置窗体Label13的属性。单击Label1标签,在属性窗口中将Caption属性值改为“输入圆的半径”;同样地将Lab
13、el2和Label3的Caption值分别改为“圆周长”、“圆面积”。设置文本框Text1属性。文本框用来输入圆半径,单击“Text1”,在属性窗口中将Text属性值“Text1”清除。同样地,将Text23的Text属性值清除,并且设置Text2和Text3的Locked属性值设置为“True”。设置命令按钮属性。单击“Command1”按钮,在属性窗口,把Caption属性的缺省值“Command1”改为“计算(&C)”。将“Command2”按钮的Caption属性值设为“关闭(&Q)”。如果字体太小,可通过Font属性进行字体大小、样式等的设置。至此窗体与控件属性设置完毕,用户程序界面
14、如图1-2所示。2设置界面上各控件对象属性 代码即命令或语句(具有特定含义的符号串或句子称为语句具有特定含义的符号串或句子称为语句),编写代码是VB程序设计必不可少的工作。代码窗口是编写应用程序代码的地方,如图1-6所示。3编写程序代码图1-6 设置完成后的事件代码窗口 代码编写步骤如下:在对象下拉列表框中,选定一个对象名Command1。然后,在过程下拉列表中选中Click事件。也可以双击Command1(计算(C)按钮,直接进入事件过程Command1_Click代码编辑状态。对象下拉列表框过程下拉列表框代码区指示条 设置Command2(关闭(Q)的单击事件。4调试、运行程序5保存程序
15、从“运行”菜单中选择“启动”,或单击工具栏上的按钮,或按F5键都可启动该程序,如图1-2所示。如果对显示效果不满意,可返回窗体设计窗口,进行必要的修改。单击标题栏上的“关闭”按钮可关闭该窗口结束运行,单击工具栏上的“结束”按钮也可结束程序运行,返回窗体设计窗口。通过“文件”菜单中的“保存工程”或“工程另存为”命令,也可直接单击工具栏上的“保存工程”按钮,系统将打开“文件另存为”对话框,如图1-7所示。图1-7 “文件另存为”对话框 由于一个工程可能含有多种文件,如工程文件和窗体文件,这些文件集合在一起才能构成应用程序。保存工程时,系统会提示保存不同类型文件的对话框,这样就有选择存放位置的问题。
16、因此,建议你在保存工程时将同一工程所有类型的文件存放在同一文件夹中,以便修改和管理程序文件。在“文件另存为”对话框中,注意保存类型,保存窗体文件(*.frm)到指定文件夹中。窗体文件存盘后系统会弹出“工程另存为”对话框,保存类型为工程文件(*.vbp),默认工程文件名为“工程1.vbp”,保存工程文件到指定文件夹中。使用VB编写应用程序,设计用户界面是可视的,编写代码是面向对象的,这样大大降低了编程难度。“可视化编程”是在一个便于理解的可视化的编程环境中,仅用鼠标即可完成基本操作,无需为处理数据而编写复杂的程序的一种编程方式;而传统的编程则是面向问题的编程方法,它需要很细致地描述过程的每一步。
17、面向对象的程序设计、可视化程序设计方法、事件驱动编程机制都是要学习的新概念。其基本概念参见引言部分。1.2 可视化编程的基本概念1.2.1 对象、事件和方法(略)1.2.2 VB应用程序的工作方式 VB运行程序时要采用事件驱动机制,其工作方式如下:启动应用程序,加载和显示窗体。窗体或窗体上的控件接收事件。事件可以由用户引发(例如键盘操作),可以由系统引发(例如定时器事件),也可以由代码间接引发,如当代码加载窗体的Load事件时。如果相应的事件过程中存在代码,则执行该代码。重复和,直到接收到结束命令为止。注意:有些事件的发生可能伴随其他事件发生。例如,在发生Dblclick 事件时,将伴随发生M
18、ouseDown、MouseUp和Click事件。应用程序是一个指令集,用来指挥计算机完成指定的操作。应用程序结构指的是组织指令的方法,即指令存放的位置和指令执行的顺序。VB应用程序通常由三种模块组成,即窗体模块、标准模块和类模块。1窗体模块 在VB中,一个应用程序包含一个或多个窗体模块(文件扩展名为.frm)。每个窗体模块分为两部分,一部分作为用户界面的窗体,另一部分是执行具体操作的代码。每个窗体模块都包含事件过程,即代码部分,这些代码是为响应特定的事件而执行的指令。在窗体上可以含有控件,窗体上的每个控件都有一个相对应的事件过程集。除事件过程外,窗体模块中还可以含有通用过程,它可以被窗体模块
19、中的任何事件过程调用。2标准模块 标准模块(文件扩展名为.bas)完全由代码组成,这些代码不与具体的窗体或控件相关联。在标准模块中,可以声明全局变量,也可以定义函数过程或子程序过程。标准模块中的过程可以被窗体模块中的任何事件调用。1.3 VB集成开发环境(略)1.4 VB程序的构成和编程步骤1.4.1 VB应用程序的构成 3类模块 可以把类模块(文件扩展名为.cls)看作没有物理表示的控件。标准模块只包含代码,而类模块包含代码又包含数据。每个类模块定义了一个类,可以在窗体模块中定义类的对象,调用类模块中的过程。三种模块都可以通过“工程”菜单中的“添加窗体”、“添加模块”、“添加类模块”来完成。
20、1.4.2 VB编程的一般步骤 由于VB的对象被表现为窗体和控件,所以程序设计大大简化,一般来说,用VB开发应用程序,分为以下几个步骤:第一步:建立用户界面。建立一个新工程(程序),出现窗体编辑器,调整窗体至要求的大小。要窗体上添加所需控件,适当调整其位置、大小。第二步:设置各个控件的属性。设置窗体的属性;设置控件的属性。第三步:编写事件驱动程序代码。进入程序代码窗口,并编写各个控件的事件代码。第四步:存盘、运行、调试。存盘。先保存窗体文件:文件名为*.frm,接着保存工程文件(程序文件):文件名为*.vbp,如果的其他资源,系统还将提示保存其他文件,如标准模块文件(*.bas)等。运行。方式
21、1:解释运行(立即执行),选择“运行”菜单中的“启动”命令或工具栏的“启动”按钮或按快捷键F5。出现程序界面,测试其功能是否正确。方式2:编译运行。选择“文件”菜单中的“生成”命令,生成一个可执行(*.exe)文件。脱离VB环境后,运行此程序该文件。调试。程序运行后如发现有错或不满意,则停止程序的执行,返回“窗体设计器”修改界面,或返回“程序代码窗口”修改程序,然后再运行测试。1.5 窗体的属性、事件和方法 窗体是所有控件的“容器”,各类控件必须建立在窗体上,利用窗体还可以显示运算的结果。在Windows的应用程序中用户界面称为窗口,窗口代表窗体及其上面的对象。同其他对象一样,窗体也具有一定的
22、属性、事件和方法等。图1-21所示就是一个窗体的示意图。VB中的应用程序可以包含许多个窗体,一个标准.exe类型的VB应用程序至少有一个窗体。最初打开新工程时,默认情况下会新建窗体,也可以通过菜单栏上的“工程”菜单项选择“添加窗体”菜单项将其他窗体添加到工程中。图1-21 窗体示意图 Name为只读属性,该属性是所有对象都具有的属性,是所创建对象的名称。所有的控件在创建时由VB提供一个默认名称。Name属性可以在Name属性窗口的“名称”栏进行修改。在程序中,对象名称是作为对象的标识在程序中引用,不会显示在窗体上。注:VB对象属性的分类 只读属性:这种属性无论在程序设计时还是在程序运行时都只能
23、从它们读出信息,而不能给它们赋值。运行时只读属性:这种属性在设计程序时可以通过属性窗口设置它们的值,但在程序运行时不能再改变它们的值。可读写属性:这种属性无论在设计时还是运行时都可读写。1.5.1 窗体的主要属性1Name(名称)属性 决定窗何是否能够自动刷新,该属性既可在设计界面时设置,也可在程序中修改。所谓自动刷新,指该窗体被其他窗口或对象遮盖后,再次成为当前窗体,是否能够恢复被遮盖前的样子。当AutoRedraw属性值设置为“真(False)”时,能够恢复,反之AutoRedraw属性值设置为“假(False)”时,不能恢复,此时窗体上使用Print、Line方法的输出结果就会消失。2A
24、utoRedraw(自动刷新)属性图1-22设置窗体的背景属性(BackColor)值 窗体的背景色,用户既可在界面设计时设置(如图1-22所示),也可在程序中修改。3BackColor(背景色)窗体属性(包括BackColor属性)在程序代码中引用属性的格式为:Object.属性名属性名 说明:功能是引用某对象(Object)的一个属性。在引用属性时,属性名和对象名之间一定要用引用符“.”隔开。如在窗体的Click事件代码中输入命令:Form1.BackColor=&H000000FF&则当用户单击窗体任意处时,窗体背景即刻变为红色。上述命令也可使用如下代码:Form1.BackColor=
25、RGB(255,0,0)或 Form1.BackColor=vbRed 其中:vbRed是一个内部常数。4BorderStyle(边框类型)只读,该属性用于确定窗体边框的样式。BorderStyle属性除应用于窗体外,还可用于多种控件,其设置值也不一样。取值如表1-1所示。表1-1 BorderStyle属性取值表(窗体)符号常数值说明 vbBSNone0无(没有边框或与边框相关的元素)vbFixedSingle1固定单边框,可以包含控制菜单框,标题栏,无“最大化”和“最小化”按钮。不能改变窗体大小。vbSizable2(缺省值)可调整的边框。vbFixedDouble3固定对话框。可以包含控
26、制菜单框和标题栏,不能包含最大化和最小化按钮,不能改变窗体尺寸。vbFixedToolWindow 4固定工具窗口。不能改变尺寸。显示关闭按钮并用缩小的字体显示标题栏。窗体在 Windows的任务条中不显示。vbSizableToolWindow5可变尺寸工具窗口。可变大小。显示关闭按钮并用缩小的字体显示标题栏。窗体在 Windows的任务条中不显示。读写属性,决定了控件上显示的标题内容。例如:Form1.Caption=求圆的周长和面积5Caption(标题)属性 该属性返回或设置一个值,指示在运行时系统菜单是否在窗体中显示。设置为True(缺省值),则显示系统菜单;设置为False,则不显
27、示。为了显示系统菜单,还必须将窗体的 BorderStyle 属性值设置为 1(固定单边框),2(可变尺寸)或 3(固定对话框)。该属性在运行时为只读。6ControlBox(控制框)CurrentX和CurrentY用于测试或设置下一次打印或绘图方法的水平或垂直坐标。该属性在设计时不可用,其使用语法格式如下:对象名对象名.CurrentX=x 对象名对象名.CurrentY=y 说明:坐标从对象的左上角开始测量。在对象的左边CurrentX属性值为0,上边的CurrentY为0。坐标在默认时,以缇为单位表示,或以ScaleHeight、ScaleWidth、ScaleLeft、ScaleTo
28、p和ScaleMode属性定义的度量单位来表示。用下面的图形方法时,CurrentX和CurrentY的设置值,按表1-2所示改变。7CurrentX、CurrentY(当前坐标)属性8Enabled(允许)属性 设置对象是否允许操作,即是否可用。值为True时允许操作,并对操作做出响应;值为False时禁止操作,对可视对象,显示为灰色。同样该属性可以在属性窗口中或通过代码设置,格式为:对象名对象名.Enable=True|False方法设置CurrentX,CurrentY为:方法设置CurrentX,CurrentY为:Circle对象的中心。NewPage 0,0。Cls0,0。Prin
29、t下一个打印位置。EndDoc 0,0。Pset画出的点。Line线终点。表1-2 使用图形方法时,CurrentX和CurrentY的设置值 该属性用来设置输出字符的各种特性,改变文本的外观。注:字体本身又是一个对象,又有自己的属性,包括字体类型(Name)、字体大小(Size)、是否粗体(Bold)、是否斜体(Italic)、是否加下划线(Underline)等。设置时通过属性窗口,点击Font右边的“”可弹出字体对话框,如图1-23所示,这时可通过字体对话框来设置各种属性。9Font(字体)属性 可以在运行时通过编写代码来实现对字形属性的设置,具体设置方式如下:字体类型。字体类型可以通过
30、FontName属性来设置,其一般格式为:对象名称对象名称.FontName =字体名称字体名称 字体大小。字体大小通过FontSize属性来设置,其一般格式为:对象名称对象名称.FontSize=点数点数 FontSize属性返回,显示文本所用的字体的大小,单位为磅。设置粗体、斜体、加下划线与加删除线等其他属性,其一般格式为:对象名称对象名称.FontBold|FontItalic|FontUnderline|FontStrikethru=True|False图1-23 字体属性设置对话框用于设置窗体的前景颜色,其设置方法同BackColor属性。10ForeColor(前景色)属性 设置在
31、运行时窗体处于最小化时显示的图标。所加载的文件必须有.ico文件扩展名和格式。如果不指定图标,窗体会使用VB缺省图标。该属性可以在属性窗口中设置,也可通过代码设置,使用LoadPicture函数或另一个窗体的Icon属性给当前窗体的该属性赋值。11Icon(图标)指定对象的左上角在容器中的横向及纵向坐标(容器的左上角为0,0),度量单位由容器的ScaleMode属性指定,默认的单位是twip。12Left、Top(左、顶)属性图1-24 窗体位置和大小与屏幕之间的关系 决定对象的总宽度和总高度。度量单位由容器的ScaleMode属性指定,默认的单位是twip。通过代码设置,格式为:对象名对象名
32、.Height =数值数值 对象名对象名.Width =数值数值 窗体位置和大小与屏幕之间的关系,如图1-24所示。13Width、Height(宽、高)属性 设置对象是否可见。值为False时,对象在程序运行时隐藏起来,用户看不见,但对象本身存在。在程序代码设置该属性的一般格式为:对象名对象名.Visible=True|False14Visible(可见性)属性 这两个属性决定窗体是否具有最大化和最小化按钮。15MaxButton、MinButton(最大、最小化按钮)该属性返回或设置窗体是否可以移动。代码设置的格式为:对象名对象名.Moveable=True|False 16Moveabl
33、e(可移动)用来在对象中显示一个图形。该属性可以在属性窗口中设置,也可以通过代码由LoadPicture函数和其他对象的Picture属性设置。17Picture(图形)该属性可以把窗体设置成在启动时最大化、最小化或正常大小。WindowsState属性为0(Normal)、1(Minimized)、2(Maximized)。18WindowState(窗口状态)常用的窗体事件有:1.5.2 窗体的事件1Initialize(初始化)事件 窗体的初始化事件,在加载一个窗体时,此事件最先被引发。在Initialize事件过程中可以为模块级变量或全局变量赋值。此时,窗体及控件尚未加载到内存中,所以
34、其属性、方法不可访问。2Load(装入)事件 Load事件发生在Initialize事件之后,是在窗体被装载时发生的事件。Load事件适用于在启动应用程序时对属性和变量的初始化。例如,用Load事件为窗体标题添加显示文字。Private Sub Form_Load()Form1.Caption=这是我的第一个VB应用程序End Sub 又如,对例1-1,可使用下种程序,使得程序在运行时可清空3个文本框中的文本。Private Sub Form_Load()Text1=:Text2=:Text3=End Sub 在Load事件发生后,系统自动触发并执行Activate事件。Load事件发生时窗体
35、是不活动的,Activate事件发生时窗体已是活动的。在不活动的窗体上不能使用Print方法显示信息,在活动的窗体上能使用Print方法。Activate事件是自动触发的事件,因此执行程序后马上要做的事可以写在该事件过程中。例如,下面程序代码在可激活窗体时为文本框Text1进行赋值。Private Sub Form_Activate()Label1.Caption=输入圆的半径 Text1=3End Sub 要取消该活动窗体而激活另一个窗体时,发生窗体的Deactivate事件。窗体可通过用户的操作变成活动窗体,如用鼠标单击窗体的任何部位或在代码中使用Show或SetFocus方法。3Acti
36、vate、Deactivate(活动、非活动)事件 Click事件是在程序运行后,用鼠标单击窗体操作时产生的事件。例如,下面程序代码在执行时,单击窗体,可向右、向下移动窗体500个单位(缇)。Private Sub Form_Click()Form1.Move Form1.Left+500,Form1.Top+500End Sub4Click(单击)事件 双击窗体产生DblClick事件,执行DblClick事件过程。5DblClick(双击)事件 重新绘制一个窗体时发生Paint事件。当移动、放大、缩小该对象或一个覆盖该对象的窗口移动后,该窗体暴露出来,就会发生此事件。6Paint(绘画)事
37、件 Resize事件是当程序运行后,窗体的大小被改变时触发的事件。一旦触发了Resize事件,便执行Resize事件的过程(如果有Resize事件过程)。例如,加入下面代码,会在改变窗体大小的同时使窗体居中显示。Private Sub Form_Resize()Me.Left=(Screen.Width-Me.Width)/2 Me.Top=(Screen.Height-Me.Height)/2End Sub说明,上面程序中的“Me”表示当前使用的窗体,即Form17Resize(改变大小)事件 该事件在一个窗体或应用程序关闭之前发生。一般用于在关闭一个应用程序之前用来确保包含在该应用程序中的
38、窗体中没有未完成的任务。例如,如果还未保存某一窗体中的新数据,则应用程序会提示保存该数据。8QueryUnload(询问卸载)事件 删除窗体时发生Unload事件,并调用Form_Unload事件过程。当该窗体在被装载时,它的所有控件都要重新初始化。这个事件是由用户动作(用控件、菜单关闭窗体)或一个Unload语句触发的。例如,单击窗体右上角的“关闭”,窗体变成红色,同时在窗体的标题栏显示系统时间。其窗体的Unload事件代码如下:Private Sub Form_Unload(Cancel As Integer)Cancel=True Cancel为真时窗体不卸载 Form1.Caption
39、=Time time函数用于取出系统时间 Form1.BackColor=RGB(255,0,0)RGB(r,g,b)用于设置颜色 End Sub 除以上事件外,窗体的常用事件还有:KeyPress(按键)事件,MouseDown(鼠标按下)事件、MouseUp(鼠标松开)事件、MouseMove(鼠标移动)事件等。9Unload(卸载)事件 清除运行时窗体(或图片框)中生成的图形和文本。形式如下:对象名对象名.Cls1.5.3 窗体的方法1Cls方法 该方法用以隐藏Form对象,但不能使其卸载。语法格式为:窗体名窗体名.Hide 省略窗体名,则默认为当前窗体(带焦点的窗体)。隐藏窗体时,它就
40、从屏幕上被删除,并将其Visible属性设置为False。用户将无法访问隐藏窗体上的控件,但是对于运行中的VB应用程序,或对于Timer控件的事件,隐藏窗体的控件仍然是可用的。如果调用 Hide 方法时窗体还没有加载,那么Hide方法将加载该窗体但不显示它。2Hide方法 该方法用以移动Form 或控件。语法格式为:对象名对象名.Move Left,Top,Width,Height 说明:对象为窗体或控件名,只有Left参数是必需的。3Move方法 该方法用于在窗体上输出文本,这里仅介绍Print的简单使用,详细使用将在第3章作详细介绍。例如,要在窗体上输出文本“你好,中国!”Print“你好
41、,中国!”4Print方法 该方法用以显示Form 对象。语法格式为:窗体名窗体名.Show(模式模式)如果调用Show方法时指定的窗体没有装载,VB将自动装载该窗体。另外,应用程序的启动窗体在其Load事件调用后会自动出现。参数“模式”,值等于1时,表示窗体状态为“模态”(模态是指鼠标只在当前窗体内起作用,只有关闭当前窗口后才能对其他窗口进行操作);值等于0时,表示窗体状态为“非模态”。5Show方法 分析:本题主要使用窗体的主要属性和事件进行设计,这里涉及到的属性、事件和方法有:Caption、Picture、FontName、FontSize、CurrentX、CurrentY、Acti
42、vate、Click、Height、Width和Print。为了要加载一幅照片,程序使用了App对象的App.Path方法,该方法用于指定应用程序文件的路径,如:当前应用程序磁盘文件的路径为:D:Test工程1.vbp,则App.Path方法得到的文件路径信息是“D:Test”。设计步骤如下(略)。图1-25例1-2的运行结果 【例1-2】设计一个应用程序窗口,当程序运行时,出现如图1-25所示的界面,单击窗体可切换背景图,双击窗体,关闭程序。1.6 基本控件及其使用 VB为用户提供了二十多个标准控件供用户在设计时使用,本节将着重介绍命令按钮控件CommandButton“”、文本框控件Tex
43、tBox“”和标签控件Label“”等三个基本控件的使用。其他标准控件的介绍我们将在陆续的章节中予于介绍它们的使用方法。注:以控件功能的复杂性来看,标准控件可分为基本控件和复杂控件两类;以具体功能的使用角度来看,标准控件可分为命令类控件、输入和输出类控件、选择类控件、循环类控件等。1.6.1 控件的画法和基本操作(略)1.6.2 控件的命名和控件值(略)命令按钮控件常用来接受用户的操作信息,用以激发某些事件。1.6.3 命令按钮(CommandButton)1命令按钮控件的主要属性 命令按钮的属性和窗体一样,属性包括Name、Top、Left、Height、Width、BackColor、En
44、abled、Visible、FontName、FontSize、FontBold、FontItalic、FontUnderline等属性外,设置方法也一样。除上述属性之外,它还有以下主要属性:返回或设置命令按钮的标题,它可以在属性窗口中设置也可以在程序运行时设置。其格式为:对象名对象名.Caption=字符串字符串 Caption属性图1-28 带快捷键的命令按钮 返回或设置一个值,这个值用来设置命令按钮控件的显示类型和行为,其格式为:对象名.Style=0|1,该属性在运行时是只读的。该属性可以用于多种控件,包括命令按钮、单选按钮、列表框、组合框、复选框等。用于命令按钮(复选框、单选按钮)时
45、,取值有VbButtonStandard即0(缺省值)标准的,VbButtonGraphical即1,表明控件用图形的样式显示。Style属性 Caption属性最多包含255个字符。该属性也可为命令按钮创建快捷键,方法为在想要指定为快捷键的字符前加一个“&”符号,如,要为“显示”命令按钮设快捷键“Alt+D”,则其Caption属性应设置为“显示(&D)”,如图1-28所示。返回或设置控件中要显示的图片。使用该属性时必须把Style属性设置为1。Picture属性 返回或设置一个对图片的引用,该图片在控件被单击并处于压下状态时显示在控件中。该属性也可用于复选框和单选按钮。与Picture属性
46、一样,使用该属性时也必须把Style属性设置为1,否则DownPicture 属性将被忽略。DownPicture属性 返回或设置一个对图片的引用,该图片在控件无效时显示在控件中(也就是说,当控件Enabled属性被设置为False时)。与前两个属性一样,使用该属性时必须把Style属性设置为1。DisabledPicture属性 设置是否可以选择窗体上一个命令按钮作为默认按钮。其格式为:对象名对象名.Default=True|False 如果该按钮的Default属性设为True时,不管窗体上的哪个控件有焦点,只要用户按了Enter键,就触发了该命令按钮的Click事件,即相当于单击了此缺省
47、按钮;否则不响应该事件。Default属性 设置命令按钮是否为Cancel按钮,其格式为:对象名对象名.Cancel=True|False 如果该按钮的Cancel属性设为True时,即当用户按Esc键时,触发该命令按钮的Click事件;否则不响应该事件。Cancel属性 无论何时选定命令按钮都会将其Value属性设置为True并触发Click事件。若Value属性为False(缺省),则表示未选择按钮。可以在代码中用Value属性触发命令按钮的Click事件。例如:Command1.Value=TrueValue属性 最常用的事件是Click事件,当单击一个命令按钮或该命令按钮的Value为
48、True时,触发该事件。命令按钮还支持SetFocus方法,不支持DblClick事件。【例1-3】设计如图1-29所示的带有“图形命令按钮”的日期和时间显示界面。程序运行时,在窗体标题有效地中显示当天的日期,单击“显示时间”按钮可显示现在时间。设计步骤如下(略)。2命令按钮事件和方法图1-29 “命令按钮”应用示例 标签(Label)和文本框(TextBox)主要用来显示(输出)文本信息,标签中只能显示文本,它所显示的内容只能用Caption属性设置或修改,不能直接编辑。而文本框中既可显示文本,又可输入文本,因此又称为交互式控件。1.6.4 标签和文本框 标签用于显示文本信息,但不能作为输入
49、信息的界面。标签的属性除了窗体及其他控件相同的,如:Name、Top、Left、Height、Width、FontName、FontSize、FontBold、FontItalic、FontUnderline、BackColor、ForeColor、Visible等属性外,标签控件还具有如下属性:1标签(Label)设置或返回控件的标题,也就是Label控件要显示的内容。Caption属性 返回或设置一个值,它指定控件的背景是透明的还是非透明的。0,1两种取值。设置为0时,透明,在控件后的背景色和任何图片都是可见的;设置为1(缺省值)时,非透明,用控件的 BackColor 属性设置值填充该控
50、件,并隐藏该控件后面的所有颜色和图片。BackStyle属性 返回或设置对象的边框样式。0,1两种取值。设置为0(缺省值)时,没有边框;设置为1时,标签有边框。BorderStyle属性 设置或返回标签中标题的放置方式。它有3种可选值:VbLeftJustify或0,(缺省值)文本左对齐;VbRightJustify或1,文本右对齐;VbCenter或2,文本居中。Alignment属性 该属性决定控件是否随标题的大小自动改变。值有为True和False(缺省值,保持控件大小不变,超出控件区域的内容被裁剪掉)。Autosize属性 属性值为True时,若标题内容达到标签控件右边界会自动换行显示