版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 意即可视的、可见的,指的是开发像Windows操
2、作系统的图形用户界面的方法。 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、V
6、FP、Delphi等。源程序程序设计语言操作系统计算机硬件(a) 解释型源程序程序设计语言编译生成的可执行程序操作系统计算机硬件(b) 编译型0.3 面向对象的基本概念“对象”与“类” 的概念 在VB中,采用构件(计算机中,将代码和数据封装起来的一个部件)拼装的方式进行程序设计,这里的构件我们称为对象。 任何事物都可以被看作“对象”(Object),而“类”(Class)则是同种对象的总称。 例如:“人”是一个类,每个具体的人是一个对象。 在程序设计中,类和对象是事先定义好的。 例如:“按钮”是一个类,每个具体的按钮是一个对象。属性名称 =XX 材料= XX直径 = XX颜色 = XX厚度 =
7、 XX方法飘浮上升下降膨胀缩小爆炸事件被释放被扎被打气被放气对象:一只气球面向对象的PME模型 任何对象都可以从以下三个方面进行描述: “属性”(Property):对象所具有的特性,对象在某时或某地的具体牲或状态,称为“属性值”。对象的属性分为3种:只读属性、运行时只读属性和可读写属性。 “方法”(Method):对象可能执行的操作或行为。 “事件”(Event):对象可以识别并作出反应的外部刺激(外界产生的一些能够激活对象功能的消息),如敲门、下课铃声、学生提问等。 以下是两个生活事例。一个是一只气球,第二个是人。由同种对象形成一个类,气球类不同对象之间的关系 一个“系统”是由多个相互联系
8、的对象组成(对象的数目和种类由系统的复杂程度决定)。同一系统中的对象之间通过相互作用(方法与事件)来改变各自的属性,使整个系统保持运动和发展。 对于同一个对象,它的属性、方法和事件之间存在极为密切的关系:事件的发生方法的执行属性的改变。 本课程使用:VB 6中文企业版SP6WinXPMSDN帮助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 20132
9、013Visual Basic 6的安装和启动方法VB 6的安装方法,参见课堂安装演示操作。VB 6的启动方法,如下图所示。(1)“开始”按钮(2)“程序”子菜单(3)“VB6”子菜单(4)此菜单项启动VB集成环境返回目录第1章 VB程序设计概述1.3 VB集成开发环境1.4 VB程序的构成和编程步骤1.5 窗体的属性、事件和方法1.6 基本控件及其使用1.7 焦点和TAB顺序1.8 几个常用系统对象*1.2 可视化编程的基本概念1.1 一个例子求圆的周长和面积1.1 一个例子求圆的周长和面积 【例1-1】 下面我们设计一个应用程序,程序运行时,用户可通过键盘在程序界面中输入任意圆的半径,单击
10、“计算”按钮后,可计算出该圆的周长和面积,如图1-1所示,设计界面如图1-2所示。 程序设计操作步骤如下: 1建立新工程 新建一个工程。 方法1:启动VB时,系统显示“新建工程”对话框,如图1-3所示。在对话框的选项卡中选择“标准EXE”,然后单击“打开”按钮,即可建立新的工程,进入VB的集成开发环境,如图1-4所示。图1-1设计界面图1-2运行界面图1-3 “新建工程”对话框 单击工具箱中的“标签”图标,然后在窗体的适当位置画出标签控件,标签内自动标有“Label1”、“Label2”等字样,本题需要3个标签;3个文本框Text13和2个“命令按钮”Command12。 方法2:在VB的“文
11、件”菜单中选择“新建工程”命令,亦可建立新的工程。图1-4VB集成开发环境添加控件 如果对绘制好的程序界面不满意,还可以调整,改变界面中的控件大小和位置。调整方法和在Word中调整图片的大小和位置的方法一样。标签、文本框、命令按钮以及窗体等都可以调整大小和位置。多余的控件可以删除,还可以通过“格式”菜单“锁定控件”命令锁定控件。 设置完用户界面后,窗体的结构如图1-5所示。调整控件的大小和位置图1-5 应用程序界面 用户界面由8个控件对象和一个窗体对象构成。每个对象都有默认的属性,如Caption属性,窗体对象为“Form1”,第1个命令按钮为“Command1”等。 为了使界面符合用户的要求
12、,应当对每个对象的属性进行修改。 设置窗体Form1的属性。单击窗体的空白区域,使窗体成为活动对象,在属性窗口中找到属性Caption,将其值改为“求圆的周长和面积”。 设置窗体Label13的属性。单击Label1标签,在属性窗口中将Caption属性值改为“输入圆的半径”;同样地将Label2和Label3的Caption值分别改为“圆周长”、“圆面积”。 设置文本框Text1属性。文本框用来输入圆半径,单击“Text1”,在属性窗口中将Text属性值“Text1”清除。同样地,将Text23的Text属性值清除,并且设置Text2和Text3的Locked属性值设置为“True”。 设置
13、命令按钮属性。单击“Command1”按钮,在属性窗口,把Caption属性的缺省值“Command1”改为“计算(&C)”。将“Command2”按钮的Caption属性值设为“关闭(&Q)”。如果字体太小,可通过Font属性进行字体大小、样式等的设置。 至此窗体与控件属性设置完毕,用户程序界面如图1-2所示。2设置界面上各控件对象属性 代码即命令或语句(具有特定含义的符号串或句子称为语句),编写代码是VB程序设计必不可少的工作。代码窗口是编写应用程序代码的地方,如图1-6所示。3编写程序代码图1-6 设置完成后的事件代码窗口 代码编写步骤如下: 在对象下拉列表框中,选定一个对象名Comma
14、nd1。然后,在过程下拉列表中选中Click事件。也可以双击Command1(计算(C)按钮,直接进入事件过程Command1_Click代码编辑状态。对象下拉列表框过程下拉列表框代码区指示条 设置Command2(关闭(Q)的单击事件。4调试、运行程序5保存程序 从“运行”菜单中选择“启动”,或单击工具栏上的按钮,或按F5键都可启动该程序,如图1-2所示。 如果对显示效果不满意,可返回窗体设计窗口,进行必要的修改。单击标题栏上的“关闭”按钮可关闭该窗口结束运行,单击工具栏上的“结束”按钮也可结束程序运行,返回窗体设计窗口。 通过“文件”菜单中的“保存工程”或“工程另存为”命令,也可直接单击工
15、具栏上的“保存工程”按钮,系统将打开“文件另存为”对话框,如图1-7所示。图1-7 “文件另存为”对话框 由于一个工程可能含有多种文件,如工程文件和窗体文件,这些文件集合在一起才能构成应用程序。保存工程时,系统会提示保存不同类型文件的对话框,这样就有选择存放位置的问题。因此,建议你在保存工程时将同一工程所有类型的文件存放在同一文件夹中,以便修改和管理程序文件。 在“文件另存为”对话框中,注意保存类型,保存窗体文件(*.frm)到指定文件夹中。窗体文件存盘后系统会弹出“工程另存为”对话框,保存类型为工程文件(*.vbp),默认工程文件名为“工程1.vbp”,保存工程文件到指定文件夹中。 使用VB
16、编写应用程序,设计用户界面是可视的,编写代码是面向对象的,这样大大降低了编程难度。“可视化编程”是在一个便于理解的可视化的编程环境中,仅用鼠标即可完成基本操作,无需为处理数据而编写复杂的程序的一种编程方式;而传统的编程则是面向问题的编程方法,它需要很细致地描述过程的每一步。 面向对象的程序设计、可视化程序设计方法、事件驱动编程机制都是要学习的新概念。其基本概念参见引言部分。 1.2 可视化编程的基本概念1.2.1 对象、事件和方法(略)1.2.2 VB应用程序的工作方式 VB运行程序时要采用事件驱动机制,其工作方式如下: 启动应用程序,加载和显示窗体。 窗体或窗体上的控件接收事件。事件可以由用
17、户引发(例如键盘操作),可以由系统引发(例如定时器事件),也可以由代码间接引发,如当代码加载窗体的Load事件时。 如果相应的事件过程中存在代码,则执行该代码。 重复和,直到接收到结束命令为止。 注意:有些事件的发生可能伴随其他事件发生。例如,在发生Dblclick 事件时,将伴随发生MouseDown、MouseUp和Click事件。 应用程序是一个指令集,用来指挥计算机完成指定的操作。应用程序结构指的是组织指令的方法,即指令存放的位置和指令执行的顺序。 VB应用程序通常由三种模块组成,即窗体模块、标准模块和类模块。 1窗体模块 在VB中,一个应用程序包含一个或多个窗体模块(文件扩展名为.f
18、rm)。每个窗体模块分为两部分,一部分作为用户界面的窗体,另一部分是执行具体操作的代码。 每个窗体模块都包含事件过程,即代码部分,这些代码是为响应特定的事件而执行的指令。在窗体上可以含有控件,窗体上的每个控件都有一个相对应的事件过程集。除事件过程外,窗体模块中还可以含有通用过程,它可以被窗体模块中的任何事件过程调用。 2标准模块 标准模块(文件扩展名为.bas)完全由代码组成,这些代码不与具体的窗体或控件相关联。在标准模块中,可以声明全局变量,也可以定义函数过程或子程序过程。标准模块中的过程可以被窗体模块中的任何事件调用。1.3 VB集成开发环境(略)1.4 VB程序的构成和编程步骤1.4.1
19、 VB应用程序的构成 3类模块 可以把类模块(文件扩展名为.cls)看作没有物理表示的控件。标准模块只包含代码,而类模块包含代码又包含数据。每个类模块定义了一个类,可以在窗体模块中定义类的对象,调用类模块中的过程。 三种模块都可以通过“工程”菜单中的“添加窗体”、“添加模块”、“添加类模块”来完成。1.4.2 VB编程的一般步骤 由于VB的对象被表现为窗体和控件,所以程序设计大大简化,一般来说,用VB开发应用程序,分为以下几个步骤: 第一步:建立用户界面。 建立一个新工程(程序),出现窗体编辑器,调整窗体至要求的大小。 要窗体上添加所需控件,适当调整其位置、大小。 第二步:设置各个控件的属性。
20、设置窗体的属性;设置控件的属性。 第三步:编写事件驱动程序代码。进入程序代码窗口,并编写各个控件的事件代码。 第四步:存盘、运行、调试。 存盘。先保存窗体文件:文件名为*.frm,接着保存工程文件(程序文件):文件名为*.vbp,如果的其他资源,系统还将提示保存其他文件,如标准模块文件(*.bas)等。 运行。 方式1:解释运行(立即执行),选择“运行”菜单中的“启动”命令或工具栏的“启动”按钮或按快捷键F5。出现程序界面,测试其功能是否正确。 方式2:编译运行。选择“文件”菜单中的“生成”命令,生成一个可执行(*.exe)文件。脱离VB环境后,运行此程序该文件。 调试。 程序运行后如发现有错
21、或不满意,则停止程序的执行,返回“窗体设计器”修改界面,或返回“程序代码窗口”修改程序,然后再运行测试。1.5 窗体的属性、事件和方法 窗体是所有控件的“容器”,各类控件必须建立在窗体上,利用窗体还可以显示运算的结果。在Windows的应用程序中用户界面称为窗口,窗口代表窗体及其上面的对象。同其他对象一样,窗体也具有一定的属性、事件和方法等。图1-21所示就是一个窗体的示意图。 VB中的应用程序可以包含许多个窗体,一个标准.exe类型的VB应用程序至少有一个窗体。最初打开新工程时,默认情况下会新建窗体,也可以通过菜单栏上的“工程”菜单项选择“添加窗体”菜单项将其他窗体添加到工程中。图1-21
22、窗体示意图 Name为只读属性,该属性是所有对象都具有的属性,是所创建对象的名称。所有的控件在创建时由VB提供一个默认名称。Name属性可以在Name属性窗口的“名称”栏进行修改。在程序中,对象名称是作为对象的标识在程序中引用,不会显示在窗体上。 注:VB对象属性的分类 只读属性:这种属性无论在程序设计时还是在程序运行时都只能从它们读出信息,而不能给它们赋值。 运行时只读属性:这种属性在设计程序时可以通过属性窗口设置它们的值,但在程序运行时不能再改变它们的值。 可读写属性:这种属性无论在设计时还是运行时都可读写。1.5.1 窗体的主要属性1Name(名称)属性 决定窗何是否能够自动刷新,该属性
23、既可在设计界面时设置,也可在程序中修改。所谓自动刷新,指该窗体被其他窗口或对象遮盖后,再次成为当前窗体,是否能够恢复被遮盖前的样子。当AutoRedraw属性值设置为“真(False)”时,能够恢复,反之AutoRedraw属性值设置为“假(False)”时,不能恢复,此时窗体上使用Print、Line方法的输出结果就会消失。2AutoRedraw(自动刷新)属性图1-22设置窗体的背景属性(BackColor)值 窗体的背景色,用户既可在界面设计时设置(如图1-22所示),也可在程序中修改。 3BackColor(背景色) 窗体属性(包括BackColor属性)在程序代码中引用属性的格式为:
24、 Object.属性名 说明:功能是引用某对象(Object)的一个属性。在引用属性时,属性名和对象名之间一定要用引用符“.”隔开。如在窗体的Click事件代码中输入命令: Form1.BackColor=&H000000FF&则当用户单击窗体任意处时,窗体背景即刻变为红色。 上述命令也可使用如下代码: Form1.BackColor=RGB(255,0,0)或 Form1.BackColor=vbRed 其中:vbRed是一个内部常数。4BorderStyle(边框类型) 只读,该属性用于确定窗体边框的样式。BorderStyle属性除应用于窗体外,还可用于多种控件,其设置值也不一样。取值如
25、表1-1所示。表1-1 BorderStyle属性取值表(窗体)符号常数值说明 vbBSNone0无(没有边框或与边框相关的元素) vbFixedSingle1固定单边框,可以包含控制菜单框,标题栏,无“最大化”和“最小化”按钮。不能改变窗体大小。 vbSizable2(缺省值)可调整的边框。 vbFixedDouble3固定对话框。可以包含控制菜单框和标题栏,不能包含最大化和最小化按钮,不能改变窗体尺寸。 vbFixedToolWindow 4固定工具窗口。不能改变尺寸。显示关闭按钮并用缩小的字体显示标题栏。窗体在 Windows的任务条中不显示。 vbSizableToolWindow5可
26、变尺寸工具窗口。可变大小。显示关闭按钮并用缩小的字体显示标题栏。窗体在 Windows的任务条中不显示。 读写属性,决定了控件上显示的标题内容。 例如:Form1.Caption= 求圆的周长和面积5Caption(标题)属性 该属性返回或设置一个值,指示在运行时系统菜单是否在窗体中显示。设置为True(缺省值),则显示系统菜单;设置为False,则不显示。为了显示系统菜单,还必须将窗体的 BorderStyle 属性值设置为 1(固定单边框),2(可变尺寸)或 3(固定对话框)。该属性在运行时为只读。6ControlBox(控制框) CurrentX和CurrentY用于测试或设置下一次打印
27、或绘图方法的水平或垂直坐标。该属性在设计时不可用,其使用语法格式如下: 对象名.CurrentX = x 对象名.CurrentY = y 说明:坐标从对象的左上角开始测量。在对象的左边CurrentX属性值为0,上边的CurrentY为0。坐标在默认时,以缇为单位表示,或以ScaleHeight、ScaleWidth、ScaleLeft、ScaleTop和ScaleMode属性定义的度量单位来表示。用下面的图形方法时,CurrentX和CurrentY的设置值,按表1-2所示改变。7CurrentX、CurrentY(当前坐标)属性8Enabled(允许)属性 设置对象是否允许操作,即是否可
28、用。值为True时允许操作,并对操作做出响应;值为False时禁止操作,对可视对象,显示为灰色。同样该属性可以在属性窗口中或通过代码设置,格式为: 对象名.Enable = True|False方法设置CurrentX, CurrentY为:方法设置CurrentX, CurrentY为:Circle对象的中心。NewPage0,0。Cls0,0。Print下一个打印位置。EndDoc0,0。Pset画出的点。Line线终点。表1-2 使用图形方法时,CurrentX和CurrentY的设置值 该属性用来设置输出字符的各种特性,改变文本的外观。 注:字体本身又是一个对象,又有自己的属性,包括字
29、体类型(Name)、字体大小(Size)、是否粗体(Bold)、是否斜体(Italic)、是否加下划线(Underline)等。设置时通过属性窗口,点击Font右边的“”可弹出字体对话框,如图1-23所示,这时可通过字体对话框来设置各种属性。 9Font(字体)属性 可以在运行时通过编写代码来实现对字形属性的设置,具体设置方式如下: 字体类型。 字体类型可以通过FontName属性来设置,其一般格式为: 对象名称.FontName = 字体名称 字体大小。 字体大小通过FontSize属性来设置,其一般格式为: 对象名称.FontSize = 点数 FontSize属性返回,显示文本所用的字体
30、的大小,单位为磅。 设置粗体、斜体、加下划线与加删除线等其他属性,其一般格式为: 对象名称.FontBold | FontItalic | FontUnderline |FontStrikethru= True|False图1-23 字体属性设置对话框用于设置窗体的前景颜色,其设置方法同BackColor属性。10ForeColor(前景色)属性 设置在运行时窗体处于最小化时显示的图标。所加载的文件必须有.ico文件扩展名和格式。如果不指定图标,窗体会使用VB缺省图标。该属性可以在属性窗口中设置,也可通过代码设置,使用LoadPicture函数或另一个窗体的Icon属性给当前窗体的该属性赋值。
31、11Icon(图标) 指定对象的左上角在容器中的横向及纵向坐标(容器的左上角为0,0),度量单位由容器的ScaleMode属性指定,默认的单位是twip。12Left、Top(左、顶)属性图1-24 窗体位置和大小与屏幕之间的关系 决定对象的总宽度和总高度。度量单位由容器的ScaleMode属性指定,默认的单位是twip。通过代码设置,格式为: 对象名.Height = 数值 对象名.Width = 数值 窗体位置和大小与屏幕之间的关系,如图1-24所示。13Width、Height(宽、高)属性 设置对象是否可见。值为False时,对象在程序运行时隐藏起来,用户看不见,但对象本身存在。在程序
32、代码设置该属性的一般格式为: 对象名.Visible = True|False14Visible(可见性)属性 这两个属性决定窗体是否具有最大化和最小化按钮。15MaxButton、MinButton(最大、最小化按钮) 该属性返回或设置窗体是否可以移动。代码设置的格式为: 对象名.Moveable = True|False 16Moveable(可移动) 用来在对象中显示一个图形。该属性可以在属性窗口中设置,也可以通过代码由LoadPicture函数和其他对象的Picture属性设置。17Picture(图形) 该属性可以把窗体设置成在启动时最大化、最小化或正常大小。WindowsState
33、属性为0(Normal)、1(Minimized)、2(Maximized)。18WindowState(窗口状态) 常用的窗体事件有:1.5.2 窗体的事件1Initialize(初始化)事件 窗体的初始化事件,在加载一个窗体时,此事件最先被引发。在Initialize事件过程中可以为模块级变量或全局变量赋值。此时,窗体及控件尚未加载到内存中,所以其属性、方法不可访问。2Load(装入)事件 Load事件发生在Initialize事件之后,是在窗体被装载时发生的事件。Load事件适用于在启动应用程序时对属性和变量的初始化。例如,用Load事件为窗体标题添加显示文字。Private Sub F
34、orm_Load() Form1.Caption = 这是我的第一个VB应用程序End Sub 又如,对例1-1,可使用下种程序,使得程序在运行时可清空3个文本框中的文本。 Private Sub Form_Load() Text1=:Text2=:Text3= End Sub 在Load事件发生后,系统自动触发并执行Activate事件。Load事件发生时窗体是不活动的,Activate事件发生时窗体已是活动的。在不活动的窗体上不能使用Print方法显示信息,在活动的窗体上能使用Print方法。Activate事件是自动触发的事件,因此执行程序后马上要做的事可以写在该事件过程中。 例如,下面
35、程序代码在可激活窗体时为文本框Text1进行赋值。Private Sub Form_Activate() Label1.Caption = 输入圆的半径 Text1 = 3End Sub 要取消该活动窗体而激活另一个窗体时,发生窗体的Deactivate事件。窗体可通过用户的操作变成活动窗体,如用鼠标单击窗体的任何部位或在代码中使用Show或SetFocus方法。3Activate、Deactivate(活动、非活动)事件 Click事件是在程序运行后,用鼠标单击窗体操作时产生的事件。例如,下面程序代码在执行时,单击窗体,可向右、向下移动窗体500个单位(缇)。Private Sub Form
36、_Click() Form1.Move Form1.Left + 500, Form1.Top + 500End Sub4Click(单击)事件 双击窗体产生DblClick事件,执行DblClick事件过程。5DblClick(双击)事件 重新绘制一个窗体时发生Paint事件。当移动、放大、缩小该对象或一个覆盖该对象的窗口移动后,该窗体暴露出来,就会发生此事件。6Paint(绘画)事件 Resize事件是当程序运行后,窗体的大小被改变时触发的事件。一旦触发了Resize事件,便执行Resize事件的过程(如果有Resize事件过程)。例如,加入下面代码,会在改变窗体大小的同时使窗体居中显示。
37、Private Sub Form_Resize() Me.Left = (Screen.Width - Me.Width) / 2 Me.Top = (Screen.Height - Me.Height) / 2End Sub说明,上面程序中的“Me”表示当前使用的窗体,即Form17Resize(改变大小)事件 该事件在一个窗体或应用程序关闭之前发生。一般用于在关闭一个应用程序之前用来确保包含在该应用程序中的窗体中没有未完成的任务。例如,如果还未保存某一窗体中的新数据,则应用程序会提示保存该数据。8QueryUnload(询问卸载)事件 删除窗体时发生Unload事件,并调用Form_Unl
38、oad事件过程。当该窗体在被装载时,它的所有控件都要重新初始化。这个事件是由用户动作(用控件、菜单关闭窗体)或一个Unload语句触发的。 例如,单击窗体右上角的“关闭”,窗体变成红色,同时在窗体的标题栏显示系统时间。其窗体的Unload事件代码如下: Private Sub Form_Unload(Cancel As Integer) Cancel = True Cancel为真时窗体不卸载 Form1.Caption = Time time函数用于取出系统时间 Form1.BackColor = RGB(255, 0, 0) RGB(r,g,b)用于设置颜色 End Sub 除以上事件外,
39、窗体的常用事件还有:KeyPress(按键)事件,MouseDown(鼠标按下)事件、MouseUp(鼠标松开)事件、MouseMove(鼠标移动)事件等。9Unload(卸载)事件 清除运行时窗体(或图片框)中生成的图形和文本。形式如下: 对象名.Cls1.5.3 窗体的方法1Cls方法 该方法用以隐藏Form对象,但不能使其卸载。语法格式为: 窗体名.Hide 省略窗体名,则默认为当前窗体(带焦点的窗体)。隐藏窗体时,它就从屏幕上被删除,并将其Visible属性设置为False。用户将无法访问隐藏窗体上的控件,但是对于运行中的VB应用程序,或对于Timer控件的事件,隐藏窗体的控件仍然是可
40、用的。 如果调用 Hide 方法时窗体还没有加载,那么Hide方法将加载该窗体但不显示它。2Hide方法 该方法用以移动Form 或控件。语法格式为: 对象名.Move Left ,Top ,Width ,Height 说明:对象为窗体或控件名,只有Left参数是必需的。3Move方法 该方法用于在窗体上输出文本,这里仅介绍Print的简单使用,详细使用将在第3章作详细介绍。 例如,要在窗体上输出文本“你好,中国!” Print “你好,中国!”4Print方法 该方法用以显示Form 对象。语法格式为: 窗体名.Show(模式) 如果调用Show方法时指定的窗体没有装载,VB将自动装载该窗体
41、。另外,应用程序的启动窗体在其Load事件调用后会自动出现。 参数“模式”,值等于1时,表示窗体状态为“模态”(模态是指鼠标只在当前窗体内起作用,只有关闭当前窗口后才能对其他窗口进行操作);值等于0时,表示窗体状态为“非模态” 。 5Show方法 分析:本题主要使用窗体的主要属性和事件进行设计,这里涉及到的属性、事件和方法有:Caption、Picture、FontName、FontSize、CurrentX、CurrentY、Activate、Click、Height、Width和Print。 为了要加载一幅照片,程序使用了App对象的App.Path方法,该方法用于指定应用程序文件的路径,
42、如:当前应用程序磁盘文件的路径为:D:Test工程1.vbp,则App.Path方法得到的文件路径信息是“D:Test”。 设计步骤如下(略)。图1-25例1-2的运行结果 【例1-2】 设计一个应用程序窗口,当程序运行时,出现如图1-25所示的界面,单击窗体可切换背景图,双击窗体,关闭程序。 1.6 基本控件及其使用 VB为用户提供了二十多个标准控件供用户在设计时使用,本节将着重介绍命令按钮控件CommandButton“”、文本框控件TextBox“”和标签控件Label“”等三个基本控件的使用。其他标准控件的介绍我们将在陆续的章节中予于介绍它们的使用方法。 注:以控件功能的复杂性来看,标
43、准控件可分为基本控件和复杂控件两类;以具体功能的使用角度来看,标准控件可分为命令类控件、输入和输出类控件、选择类控件、循环类控件等。1.6.1 控件的画法和基本操作(略)1.6.2 控件的命名和控件值(略) 命令按钮控件常用来接受用户的操作信息,用以激发某些事件。1.6.3 命令按钮(CommandButton)1命令按钮控件的主要属性 命令按钮的属性和窗体一样,属性包括Name、Top、Left、Height、Width、BackColor、Enabled、Visible、FontName、FontSize、FontBold、FontItalic、FontUnderline等属性外,设置方法
44、也一样。 除上述属性之外,它还有以下主要属性: 返回或设置命令按钮的标题,它可以在属性窗口中设置也可以在程序运行时设置。其格式为: 对象名.Caption=字符串 Caption属性图1-28 带快捷键的命令按钮 返回或设置一个值,这个值用来设置命令按钮控件的显示类型和行为,其格式为: 对象名.Style=0|1,该属性在运行时是只读的。该属性可以用于多种控件,包括命令按钮、单选按钮、列表框、组合框、复选框等。用于命令按钮(复选框、单选按钮)时,取值有VbButtonStandard即0(缺省值) 标准的,VbButtonGraphical即1,表明控件用图形的样式显示。Style属性 Cap
45、tion属性最多包含255个字符。该属性也可为命令按钮创建快捷键,方法为在想要指定为快捷键的字符前加一个“&”符号,如,要为“显示”命令按钮设快捷键“Alt+D”,则其Caption属性应设置为“显示(&D)”,如图1-28所示。 返回或设置控件中要显示的图片。使用该属性时必须把Style属性设置为1。Picture属性 返回或设置一个对图片的引用,该图片在控件被单击并处于压下状态时显示在控件中。该属性也可用于复选框和单选按钮。与Picture属性一样,使用该属性时也必须把Style属性设置为1,否则DownPicture 属性将被忽略。DownPicture属性 返回或设置一个对图片的引用,
46、该图片在控件无效时显示在控件中(也就是说,当控件Enabled属性被设置为False时)。与前两个属性一样,使用该属性时必须把Style属性设置为1。DisabledPicture属性 设置是否可以选择窗体上一个命令按钮作为默认按钮。其格式为: 对象名.Default=True|False 如果该按钮的Default属性设为True时,不管窗体上的哪个控件有焦点,只要用户按了Enter键,就触发了该命令按钮的Click事件,即相当于单击了此缺省按钮;否则不响应该事件。Default属性 设置命令按钮是否为Cancel按钮,其格式为:对象名.Cancel=True|False 如果该按钮的Can
47、cel属性设为True时,即当用户按Esc键时,触发该命令按钮的Click事件;否则不响应该事件。Cancel属性 无论何时选定命令按钮都会将其Value属性设置为True并触发Click事件。若Value属性为False(缺省),则表示未选择按钮。可以在代码中用Value属性触发命令按钮的Click事件。例如:Command1.Value = TrueValue属性 最常用的事件是Click事件,当单击一个命令按钮或该命令按钮的Value为True时,触发该事件。命令按钮还支持SetFocus方法,不支持DblClick事件。 【例1-3】 设计如图1-29所示的带有“图形命令按钮”的日期和
48、时间显示界面。程序运行时,在窗体标题有效地中显示当天的日期,单击“显示时间”按钮可显示现在时间。设计步骤如下(略)。2命令按钮事件和方法图1-29 “命令按钮”应用示例 标签(Label)和文本框(TextBox)主要用来显示(输出)文本信息,标签中只能显示文本,它所显示的内容只能用Caption属性设置或修改,不能直接编辑。而文本框中既可显示文本,又可输入文本,因此又称为交互式控件。1.6.4 标签和文本框 标签用于显示文本信息,但不能作为输入信息的界面。标签的属性除了窗体及其他控件相同的,如:Name、Top、Left、Height、Width、FontName、FontSize、Font
49、Bold、FontItalic、FontUnderline、BackColor、ForeColor、Visible等属性外,标签控件还具有如下属性:1标签(Label)设置或返回控件的标题,也就是Label控件要显示的内容。Caption属性 返回或设置一个值,它指定控件的背景是透明的还是非透明的。0,1两种取值。设置为0时,透明,在控件后的背景色和任何图片都是可见的;设置为1(缺省值)时,非透明,用控件的 BackColor 属性设置值填充该控件,并隐藏该控件后面的所有颜色和图片。BackStyle属性 返回或设置对象的边框样式。0,1两种取值。设置为0(缺省值)时,没有边框;设置为1时,标
50、签有边框。BorderStyle属性 设置或返回标签中标题的放置方式。它有3种可选值:VbLeftJustify或0, (缺省值)文本左对齐;VbRightJustify或1,文本右对齐;VbCenter或2,文本居中。Alignment属性 该属性决定控件是否随标题的大小自动改变。值有为True和False(缺省值,保持控件大小不变,超出控件区域的内容被裁剪掉)。Autosize属性 属性值为True时,若标题内容达到标签控件右边界会自动换行显示;设置为False时,不自动换行,超出边界内容不显示。该属性只适用于标签。为了使WordWrap起作用,应把AutoSize属性设置为True。 注
51、意:AutoSize属性有更高的优先级,并且Label的宽度将增加到适应这个长的单字。WordWrap属性 标签经常接收的事件有:单击(Click)、双击(DblClick)和改变(Change)等。但通常标签只起到在窗体上显示文本的作用,标签控件不用来触发事件过程,不必编写事件过程。 【例1-4】 利用上题,在窗体中添加一个标签控件,用于显示日期和时间,如图1-30所示。 分析: 要在标签控件中显示日期和时间,这里在例1-3的基础上,添加一个标签控件Label1,并将标签控件Label1的AutoSize属性设置为“True”。 然后,将例1-3的事件过程代码段中的Form1替换为Label
52、1。 窗体及命令按钮相应的事件过程代码如下(略)。图1-30 标签控件的使用 文本框有时也称为“编辑框”或“编辑控件”,是一个文本编辑区域,用户可以在该区域输入、编辑、修改和显示文本内容。2文本框(TextBox) 文本框控件支持的属性除Name、Top、Left、Height、Width、FontName、FontSize、FontBold、FontItalic、FontUnderline、BackColor、ForeColor、Enabled、Visible、BorderStyle等属性外,还使用下列主要属性:文本框的属性 此属性用于设置文本框在失去焦点时,被选定的文本是否加亮显示。语法格
53、式如式 对象名.HideSelection=True|False 属性的默认值为True,即当控件失去焦点时,选择文本不加亮显示。HideSelection属性 返回或设置文本框的内容是否可以编辑。如果设为True,则锁住文本框的Text属性内容,只能显示,不能作任何变更,成为只读文本,在文本框中可以使用“复制”命令,但不能使用“剪切”和“粘贴”命令。该属性的默认值为False。Locked属性 用于确定文本框中显示的内容。文本框无Caption属性,显示的文本内容存放在Text属性中。当程序执行时,用户通过键盘编辑正文,其一般格式为: 对象名.Text=”字符串”Text属性 用来设置允许在
54、文本框中输入的最大字符数。该属性默认值为0,单行文本框中字符串的长度受操作系统的限制,字符数不能超过32000(多行文本)。MaxLength属性 设置文本是否以多行方式显示文本。其格式为: 对象名.Multiline=True|False(默认)Multiline属性 该属性指示文本框是有水平滚动条还是有垂直滚动条。该属性设置只能在设计时完成,运行时是只读的。它有4种取值:VbSBNone或0(缺省值),没有滚动条;VbHorizontal或1,只有水平滚动条;VbVertical或2,只有垂直滚动条;VbBoth或3,同时具有水平和垂直滚动条。 注意:对于 ScrollBars 的属性设置
55、值为1(水平)、2(垂直)或3(两种都有)的文本框控件,必须将MultiLine属性设置为True。ScollBars属性 返回或设置在文本框中所选择的文本的起始点;如果没有文本被选中,则指出插入点的位置。系统设定文本第一个字符之前的位置为0。SelStart属性 返回或设置包含当前所选择文本的字符串;如果没有字符被选中,则为零长度字符串 ()。SelText属性 返回或设置当前所选择的字符数。如果该属性设置为0,则表示未选中任何文本。该属性和下述的SelStart属性、SelText属性只有在运行时才能设置。SelLength属性 PassWordChar属性设置所键入的字符在文本框控件中的
56、显示方式,常用用于口令输入。例如,把该属性设置为一个字符,如“*”,则在文本框中键入字符时,显示的不是键入的字符,而是被设置的字符“*”,不过文本框中输入的内容仍是输入的文本。 默认情况下,该属性被设置为空字符串,用户从键盘上输入时,控件中显示实际输入的文本。 如果MultiLine属性被设为True,那么设置PasswordChar属性将不起作用。PassWordChar属性 文本框除支持Click和DblClick事件以外,还支持Change、KeyPress、GotFocus、LostFocus等常用事件以及SetFocus方法。文本框常用事件和方法 当用户在文本框中输入新信息,或者在程
57、序中将Text属性设置为新值时,触发该事件。对于该事件,用户每输入一个字符就引发一次。Change事件 当用户按下并且释放键盘上的一个ANSI键时,就会引发焦点所在的控件的KeyPress事件,此时事件返回一个KeyAscii参数到该事件过程中。同Change事件一样,每输入一个字符就会引发一次事件。KeyPress事件 当文本框获得输入焦点(即处于活动状态)时,触发该事件;获得焦点可以通过诸如用“Tab”键切换,或单击对象之类的用户动作,或在代码中用 SetFocus 方法改变焦点来实现。GotFocus事件 当离开文本框时,触发该事件。通常可用这个事件检查文本框的内容。LostFocus事
58、件 该方法的作用是把输入焦点移到指定的文本框中,其格式为: 对象名. SetFocus 说明:对象必须是可视的文本框、Form对象、MDIForm 对象或者能够接收焦点并且可用的控件对象。SetFocus方法(a)(b)图1-31例1-5程序运行示意图 【例1-5】 设计一个如图1-31(a)所示的用户登录界面,程序运行时,先在两个文本框中分别输入用户名和口令,然后单击“确定”命令按钮执行上边的事件过程,弹出确认消息对话框并显示出用户名和口令,如图1-31(b)所示。 分析:应用程序窗体上需要2个标签,二个文本框和命令按钮。要显示图1-31(b)所示的界面,需要用到消息框函数MsgBox(),
59、该函数的详细使用方法将在后面的章节中。消息框函数MsgBox()的格式如下: MsgBox “显示的内容”, 按钮数量 ,显示标题 设计步骤如下(略): 焦点与Tab顺序是使用VB控件接受用户输入时的相关概念。文本框、命令按钮的默认选择等都与此有关。1.7 焦点和Tab顺序* 什么是焦点?焦点是对象接收用户鼠标或键盘输入的能力。当对象具有焦点时,可接收用户的输入。如VB中,只有具有焦点的TextBox才显示由键盘输入的文本,其表现形式就是该文本框中有一个不断跳动的竖线“|” 。 当对象得到焦点时时,会产生GotFocus事件,而当对象失去焦点时,将产生LostFocus事件。 下列方法可以将焦
60、点赋给对象。 运行时Tab键移动或用鼠标选择(单击)对象。 运行时用快捷键选择对象。 在程序代码中使用SetFocus方法。 只有当一个对象的Enabled和Visible属性均为True时,它才能接收焦点。并不是所有的控件都可以接收焦点。如Frame、Label、Lin、Image等控件不能接收焦点。而窗体只有在包含任何可以接收焦点的控件时,才可接收焦点。 有些对象,它是否具有焦点是可以看出来的。例如,当命令按钮、复选框、单选按钮等控件具有焦点时,标题周围的边框将突出显示,当文本框具有焦点时,在文本框中有闪烁的插入光标,如图1-32所示。 1.7.1 焦点图1-32 具有焦点的命令按钮和文本
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年大班拼音韵母说课稿
- 2025-2026学年好吃的梨说课稿
- 2025-2026学年儿歌说课稿中班
- 2026年江西省樟树市高二历史下册期末考试模拟卷【能力提升】附答案
- 2025-2026学年初中物理说课稿设计心得
- 2025-2026学年关于言语的说课稿
- 2026下半年退役军人服务岗招聘考试全真模拟试卷
- 2025-2026学年乖孩子说课稿反思
- 2025-2026学年关于洗脸的说课稿
- 2025-2026学年创意素描课程说课稿
- 老年人认知障碍预防干预技术标准
- 2026年湖南中医药高等专科学校高职单招笔试职业技能测验试题库含答案解析3套试卷
- 2025年中国养老地产行业市场研究报告:CCRC与居家养老
- 2026-2027学年人教版八年级上学期数学第一次月考模拟测试抢分卷(含答案)
- 成本实操-有色金属矿采选成本核算SOP
- 教师五年专业发展目标达成情况个人总结
- 雨课堂学堂云在线《人工智能原理》单元测试考核答案
- GJB3243A-2021电子元器件表面安装要求
- 2025年4月自考03450公共部门人力资源管理试题
- 网络培训平台管理制度
- T/CNESA 1003-2020电力储能系统用电池连接电缆
评论
0/150
提交评论