VisualBasic6.0程序设计教程(第4版)(普通高等教育“十一五”国家级规划教材)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-03 09:35:02

点击下载

作者:罗朝盛

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

VisualBasic6.0程序设计教程(第4版)(普通高等教育“十一五”国家级规划教材)

VisualBasic6.0程序设计教程(第4版)(普通高等教育“十一五”国家级规划教材)试读:

第4版前言

本书 2007 年入选普通高等教育“十一五”国家级规划教材,2009 年按照规划教材的要求修订出版了第3版,3年多来,先后重印10多次,受到广大读者的欢迎,被全国50多所各类高等学校选为教材,与教材配套的实验CAI系统也推广到很多高校,得到了不少专家、教师和学生的好评。同时也有不少教师和学生提出了一些很好的意见和建议,结合近几年的教学实践以及广大读者和教师提出的意见和建议,我们对本教材进行了修订,推出第 4 版。本次修订保持了前 3 版的写作风格和特色,优化调整了部分章节内容,对部分章节内容进行了删减、充实。

本书第4版与第3版相比,主要做了以下几方面的调整。(1)将第3版的12章调整为11章,将原第1、2章内容合并形成新的第1章,将第4章3种基本结构的程序设计,修改为控制结构程序设计,将第8章与第 9 章顺序交换。调整后各章顺序是:Visual Basic 6.0 程序设计概述、Visual Basic语言基础、控制结构程序设计、数组及应用、过程与函数、常用控件与系统对象、图形及应用、文件及应用、对话框与菜单程序设计、多文档界面与工具栏设计、数据库编程基础。这些调整使得本书更适合教学实际。(2)根据教学实际,删减、充实了部分章节。各章内容和文字均细致地进行了修改,使读者更容易理解与掌握。(3)精选和充实教材的例题。例题是为帮助读者理解、掌握教学内容而设计的程序范例,此次修订更换了部分例题,对原有例题的程序代码进行优化,使读者更容易阅读理解。对大部分例题都给出了编程分析;在例题最后,针对一些要求学生掌握并容易出错的问题提出了“思考与讨论”,使读者通过阅读这些例题,能够做到举一反三,加深对所学内容的理解和掌握,提高编程能力。(4)注重应用与适用,充实了习题与实验。更换了一些与教学内容关联性不大的习题,在习题中增加了一些与界面设计关系不大,且方便书写在作业本上的编程题,以方便教师布置作业。对第3版教材的实验内容进行了较大的修改,使之更具有可操作性和实践性,以培养学生程序调试的能力。(5)构建“多元化”、“立体化”教材体系。修改、完善了与本书配套的“任务驱动”的实验CAI系统,修改了教学使用的电子课件。与教材有关的教学辅导资料放在作者自己的个人教学网站(http://www.csluo.com)和人民邮电出版社教学服务与资源网(http://www.ptpedu.com.cn)上,方便读者浏览与下载。

我们相信,此次修订后的教材,更适合教师的教学和读者的学习。

本次修订由罗朝盛提出修改思路和修订方案,并最后修改定稿。参与本书编写工作的有魏英、余文芳、余平等。在本书的修改过程中,中国地质大学长城学院计算机教研室冀松老师提出不少有益的建议,浙江大学俞瑞钊教授,杭州电子科技大学胡维华教授,浙江工业大学陈庆章教授、胡同森教授,杭州师范大学詹国华教授,温州医学院白宝钢教授,广东工业大学郑玲利副教授,河南广播电视大学裘佩珍副教授等专家及浙江科技学院信息学院计算机基础教学部全体教师的帮助和支持,在此一并表示衷心的感谢。

本书可作为各类高等院校计算机专业及非计算机专业学习 Visual Basic 程序设计的教材,也可供相关工程技术人员和计算机爱好者参考。

本书虽经反复修改,但限于编者水平,不当之处仍在所难免,谨请广大读者指正。编者2013年1月第1章Visual Basic6.0程序设计概述

本章介绍 Visual Basic 6.0 及开发集成环境,Visual Basic 的基本概念,窗体对象的常用属性、事件和方法,并通过一个简单例子说明 Visual Basic 应用程序设计的一般过程。

本章主要任务:(1)了解 Visual Basic 6.0 的功能及其特点,理解面向对象程序设计的方法;(2)掌握 Visual Basic 6.0 开发集成环境主要组成部分及其使用;(3)掌握窗体对象的常用属性、事件和方法及其使用;(4)掌握文本框、标签和命令按钮控件的常用属性、事件和方法及其使用;(5)掌握 Visual Basic 应用程序的组成及开发 Visual Basic 应用程序的一般步骤。1.1 中文Visual Basic6.0简介

Visual Basic 6.0是 Microsoft 公司推出的基于 Windows 环境的计算机程序设计语言,它继承了 BASIC 语言简单易学的优点,同时增加了许多新的功能。由于 Visual Basic 采用面向对象的程序设计技术,摆脱了面向过程语言的许多细节,而将主要精力集中在解决实际问题和设计友好界面上,使开发Windows应用程序更迅速、简捷。

什么是 Visual Basic?“Visual”指的是开发图形用户界面(GUI)的方法。在图形用户界面下,不需要编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象加到屏幕上的适当位置,再进行简单的设置即可。“Basic”指的是BASIC(BeginnersAll-Purpose Symbol Instruction Code,初学者通用的符号指令代码)语言,是一种应用十分广泛的计算机语言。Visual Basic 在原有 BASIC 语言的基础上进一步发展,至今包含了数百条语句、函数及关键词,其中很多和Windows GUI 有直接关系。专业人员可以用 Visual Basic 实现其他任何 Windows 编程语言的功能,而初学者只要掌握几个关键词就可以建立简单的应用程序。1.1.1 Visual Basic的发展

1991年,Microsoft公司推出 Visual Basic 1.0版,它虽然存在一些缺陷,但仍受到了广大程序员的青睐。随后,Microsoft公司又分别在1992年、1993年、1995年和1997年相继推出了Visual Basic 2.0、3.0、4.0、5.0等多个版本。目前常用的版本 Visual Basic 6.0是 1998年下半年推出的。Visual Basic 6.0版较以前版本,其功能和性能都大大增强了,它还提供了新的、灵巧的数据库和Web开发工具。

Visual Basic 6.0有3种版本,分别为学习版、专业版和企业版。

●学习版:它是最基本的版本,允许编写许多类型的程序,与其他版本相比,所带工具较少。

专业版:为专业人员而设计,它不仅包含了学习版的全部内容,还包含了许多其他功能,如具有创建ActiveX控件和ActiveX文档的能力;提供Internet开发功能,具有更多使用数据库的工具。

●企业版:这是 Visual Basic 6.0 最完善的版本,该版本主要用于开发企业级分布式应用程序,它包含了许多附加工具,提供了完全集成 SQL Server 的所有工具。

这3个版本是在相同的基础上建立起来的,以满足不同层次用户的需要。对大多数用户来说,专业版就可以满足要求。本书使用的是 Visual Basic 6.0 的企业版(中文),书中介绍的内容尽量做到与版本无关。1.1.2 Visual Basic的特点

Visual Basic 有以下几个主要的特点。

1.提供了面向对象的可视化编程工具

Visual Basic 采用的是面向对象的程序设计(OOP)方法,它把程序和数据封装在一起,视作一个对象。设计程序时只需从现有的工具箱中“拖”出所需的对象,如按钮、滚动条等,并为每一个对象设置属性,就可以在屏幕上“画”出所需的用户界面来,因而程序设计的效率可大大地提高。

2.事件驱动的编程方式

传统的程序设计是一种面向过程的方式,程序总是按事先设计好的流程运行,而不能将后面的程序放在前面运行,即用户不能随意改变、控制程序的流向,这不符合人类的思维习惯。在Visual Basic中,用户的动作——事件控制着程序的流向,每个事件都能驱动一段程序的运行。程序员只需编写响应用户动作的代码,而各个动作之间不一定有联系,这样的应用程序代码一般比较短,所以程序易于编写与维护。

3.结构化的程序设计

尽管 Visual Basic 是面向对象的程序设计语言,但是在具体的事件或过程编程中,仍是要采用结构化的程序设计。Visual Basic 具有丰富的数据类型和结构化程序结构,而且简单易学。此外,作为一种程序设计语言,Visual Basic 还有以下独到之处:(1)增强了数值和字符串处理功能,和传统的BASIC语言相比有许多改进;(2)提供了丰富的图形及动画指令,可方便地绘制各种图形;(3)提供了定长和动态(变长)数组,有利于简化内存管理;(4)增加了递归过程调用,使程序更为简练;(5)提供了一个可供应用程序调用的包含多种类型的图标库;(6)具有完善的调试、运行出错处理。

4.提供了易学易用的应用程序集成开发环境

在 Visual Basic 的集成开发环境中,用户可设计界面、编写代码、调试程序,直至将应用程序编译成可执行文件在Windows上运行,使用户在友好的开发环境中工作。

5.支持多种数据库系统的访问

数据访问特性允许对包括 Microsoft SQL Server 和其他企业数据库在内的大部分数据库格式建立数据库和前端应用程序,以及可调整的服务器端部件。利用数据控件可访问 MicrosoftAccess、Dbase、Microsoft FoxPro、Paradox 等,也可以访问 Microsoft Excel、Lotusl1-2-3 等多种电子表格。

6.支持动态数据交换(DDE)、动态链接库(DLL)和对象的链接与嵌入(OLE)

动态数据交换是 Microsoft Windows 除了剪贴板和动态链接函数库以外,在 Windows 内部交换数据的第三种方式。利用这项技术可使 Visual Basic 开发的应用程序与其他 Windows 应用程序之间建立数据通信。

动态链接库中存放了所有Windows应用程序可以共享的代码和资源,这些代码或函数可以用多种语言写成。Visual Basic 利用这项技术可以调用任何语言产生的 DLL,也可以调用 Windows应用程序接口(API)函数,以实现SDK所能实现的功能。

对象的链接与嵌入是 Visual Basic 访问所有对象的一种方法。利用 OLE 技术,Visual Basic 将其他应用软件作为一个对象嵌入应用程序中进行各种操作,也可以将各种基于Windows的应用程序嵌入 Visual Basic 应用程序中,实现声音、图像、动画等多媒体的功能。

7.完备的联机帮助功能

与 Windows 环境下的其他软件一样,在 Visual Basic 中,利用帮助菜单和 F1 功能键,用户可随时方便地得到所需的帮助信息。Visual Basic 帮助窗口中显示了有关的示例代码,通过复制、粘贴操作可获得大量的示例代码,为用户的学习和使用提供了极大的方便。

另外,Visual Basic 6.0 与以前的版本不同,它是 Visual Studio 家族的一个组件,保留了 Visual Basic 5.0 的优点,如在开发环境上的改进,增加了工作组,在代码编辑器中提供了控件属性/方法的自动提示,能编译生成本机代码,大大提高程序的执行速度等。同时,Visual Basic 6.0 在数据技术、Internet 技术及智能化向导方面都有了许多新的特性。读者可通过阅读 Visual Basic 6.0 的帮助系统来了解新特性。1.2 Visual Basic6.0的集成开发环境

Visual Basic 集成开发环境(IDE),为用户提供了整套工具,方便用户开发应用程序。它在一个公共环境里集成了许多不同的功能,如设计、编辑、编译和调试。下面介绍 Visual Basic 6.0 的集成开发环境。1.2.1 主窗口

当启动 Visual Basic 6.0时,可以见到如图 1-1所示的“新建工程”窗口,窗口中列出了可建立的工程类型。其中会提示选择要建立的工程类型。使用 Visual Basic 6.0可以生成 13种类型的应用程序(图中仅看到10种,通过拖动滚动条可看到另外3种)。图1-1 VisualBasic6.0中可以建立的工程类型

在图1-1的窗口中有以下3个选项卡。(1)新建:这个选项卡中列出了可生成的工程类型,“新建”选项卡中的工程是用户从头开始创建的。(2)现存:这个选项卡中列出了可以选择和打开的现有工程。(3)最新:这个选项卡中列出了最近使用过的工程,用户可以选择和打开一个需要的工程。

选择“新建”选项卡中的“标准EXE”图标并单击“打开”按钮,可以打开如图 1-2 所示的 Visual Basic 6.0 集成开发环境窗口。图 1-2 Visual Basic 6.0 集成开发环境

需要说明的是,一般启动时,可能见不到如图 1-2 中的“立即窗口”。在 Visual Basic 集成环境中的其他窗口,都可以通过“视图”菜单中的相应命令来打开和关闭这个窗口。

1.标题栏

标题栏位于主窗口最上面的一行,如图1-3所示。标题栏显示窗口标题及工作模式,启动时显示为“工程 1-Microsoft Visual Basic[设计]”,表示 Visual Basic 处于程序设计模式。Visual Basic 有3种工作模式:设计(Design)模式、运行(Run)模式和中断(Break)模式。图 1-3 Visual Basic 6.0 集成开发环境的标题栏、菜单栏和工具栏(1)设计模式:可进行用户界面的设计和代码的编制,以完成应用程序的开发。(2)运行模式:运行应用程序,这时不可编辑代码,也不可编辑界面。处于这种模式时,标题栏中的标题为“工程 1-Microsoft Visual Basic [运行]”。(3)中断模式:应用程序运行暂时中断,这时可以编辑代码,但不可编辑界面。此时,标题栏中的标题为“工程 1 Microsoft Visual Basic [中断]”。按 F5 键或单击工具栏的继续按钮,程序继续运行;单击结束按钮,程序停止运行。在此模式下会弹出“立即”窗口,在“立即”窗口内可输入简短的命令,并立即执行。

2.菜单栏

Visual Basic 集成开发环境的菜单栏中包含使用 Visual Basic 所需要的命令。它除了提供标准“文件”、“编辑”、“视图”、“窗口”和“帮助”菜单之外,还提供了编程专用的功能菜单,如“工程”、“格式”、“调试”、“外接程序”等13个菜单,如图1-3所示。

Visual Basic 6.0 集成开发环境中的基本菜单如下。(l)文件:包含打开和保存工程以及生成可执行文件的命令。(2)编辑:包含编辑命令和其他一些格式化、编辑代码的命令,以及其他编辑功能命令。(3)视图:包含显示和隐藏IDE元素的命令。(4)工程:包含在工程中添加构件、引用Windows对象和工具箱新工具的命令。(5)格式:包含对齐窗体控件的命令。(6)调试:包含一些通用的调试命令。(7)运行:包含启动、设置断点和终止当前应用程序运行的命令。(8)查询:包含操作数据库表时的查询命令以及其他数据访问命令。(9)图表:包含操作 Visual Basic 工程时的图表处理命令。(10)工具:包含建立ActiveX控件时需要的工具命令,并可以启动菜单编辑器以及配置环境选项。(11)外接程序:包含可以随意增删的外接程序。缺省时这个菜单中只有“可视化数据管理器”选项。通过“外接程序管理器”命令可以增删外接程序。(12)窗口:包含屏幕窗口布局命令。(13)帮助:提供相关帮助信息。

3.工具栏

工具栏在编程环境下提供对于常用命令的快速访问。单击工具栏上的按钮,即可执行该按钮所代表的操作。按照默认规定,启动 Visual Basic 之后将显示“标准”工具栏。其他工具栏,如“编辑”、“窗体设计”和“调试”工具栏可以通过“视图”菜单中的“工具栏”命令移进或移出。工具栏能紧贴在菜单栏下方,或以垂直条状紧贴在左边框上。如果用鼠标将它从某栏下面移开,则它能“悬”在窗口中。一般工具栏在菜单栏的正下方,如图1-3所示。1.2.2 窗体设计窗口“窗体设计窗口”也称为对象窗口。Windows 的应用程序运行后都会打开一个窗口,窗体设计窗口是应用程序最终面向用户的窗口,是屏幕中央的主窗口。通过在窗体中添加控件并设置相应的属性来完成应用程序界面的设计。每个窗口必须有一个窗体名称,系统启动后就会自动创建一个窗体(默认名为 Form1)。用户可通过“工程/添加窗体”来创建新窗体或将已有的窗体添加到工程中。程序每个窗体保存后都有一个窗体文件名(扩展名为.frm)。注意窗体名即窗体的“Name”属性和窗体文件名的区别。1.2.3 工具箱

系统启动后默认的 General 工具箱就会出现在屏幕左边,其中每个图标表示一种控件,常用的有20个,如图1-4所示。图 1-4 VB 工具箱中的常用控件类型

用户可以将不在工具箱中的其他ActiveX控件放到工具箱中。通过“工程”菜单中的“部件”命令或从“工具箱”快捷菜单中选定“部件”选项卡,就会显示系统安装的所有ActiveX控件清单。要将某控件加入到当前选项卡中,单击要选定控件前面的方框,然后单击“确定”按钮即可,如图1-5所示。图 1-5 “部件”对话框1.2.4 工程资源管理器

工程是指用于创建一个应用程序的文件的集合。工程资源管理器列出了当前工程中的窗体和模块,如图1-6所示。图 1-6 工程资源管理器

在“工程资源管理器”窗口中有 3 个按钮,分别表示“查看代码”、“查看对象”和“切换文件夹”。

单击“查看代码”按钮,可打开“代码编辑器”查看代码。

单击“查看对象”按钮,可打开“窗体设计器”查看正在设计的窗体。

单击“切换文件夹”按钮,则可以隐藏或显示包含在对象文件夹中个别项目列表。1.2.5 属性窗口

属性是指对象的特征,如大小、标题或颜色等。在 Visual Basic 6.0设计模式中,属性窗口列出了当前选定窗体或控件的属性及其值,用户可以对这些属性值进行设置。例如,要设置Command1命令按钮上显示的字符串,可以找到属性窗口的“Caption”属性,输入“开始”之类的字符串,如图1-7所示。图 1-7 属性设置窗口1.2.6 窗体布局窗口

窗体布局窗口显示在屏幕右下角。用户可使用表示屏幕的小图像来布置应用程序中各窗体的位置。这个窗口在多窗体应用程序中很有用,因为通过它可以指定每个窗体相对于主窗体的位置。图1-8所示为桌面上两个窗体及其相对位置。鼠标右键单击小屏幕,弹出快捷菜单,可通过该快捷菜单设计窗体启动位置,如要设计窗体Form1启动位置居于屏幕中心,其操作如图1-9所示。图 1-8 窗体布局窗口图 1-9 设计窗体启动位置1.2.7 代码编辑器窗口

在设计模式中,通过双击窗体或窗体上的任何对象或单击“工程资源管理器”窗口中的“查看代码”按钮都可打开代码编辑器窗口。代码编辑器是输入应用程序代码的编辑器,如图1-10所示。应用程序的每个窗体或标准模块都有一个单独的代码编辑器窗口。图 1-10 代码编辑器窗口1.2.8 立即窗口

在 Visual Basic 集成开发环境(IDE)中,运行“视图/立即窗口”命令或使用快捷键 Ctrl+G,即可打开如图1-11所示的立即窗口。

立即窗口是 Visual Basic 所提供的一个系统对象,也称为 Debug 对象,供调试程序使用。它只有方法,不具备任何事件和属性,通常使用的是Print方法。

在设计状态下,可以在立即窗口中进行一些简单的命令操作,如给变量赋值,用“?”或Print (两者等价)输出一些表达式的值。

例如,在立即窗口中使用赋值符给变量赋值,即输入

X = 3.14:Y = 2:Z = 30:P = True: K = False

使用“?表达式”或“Print表达式”输出其表达式的值。操作如下:

? X+Y

5.14      '输出结果

Print Int(X)+Y/2

4       '输出结果

? Not P Or K And P Or Y>Z

False      '输出结果

操作结果如图1-12所示。图 1-11 立即窗口图 1-12 在立即窗口中操作实例

此外,Visual Basic 6.0 中还有两个非常有用的附加窗口:本地窗口和监视窗口。它们都是为调试应用程序提供的,它们只在运行工作模式下才有效。1.3 Visual Basic中的一些基本概念

在用 Visual Basic 进行程序设计之前,首先要正确理解 Visual Basic 的对象、属性、事件、方法等几个重要概念。正确理解这些概念是设计 Visual Basic 应用程序的基础。1.3.1 对象与类

对象(Object)是代码和数据的集合。现实生活中的一个实体就是一个对象,如一支钢笔、一辆汽车、一台计算机都是一个对象。一台计算机可以拆分为主板、CPU、内存、外设等部件,这些部件又都分别是对象,因此计算机对象可以说是由多个“子”对象组成的,它可以称为是一个对象容器(Container)。

在 Visual Basic 6.0 中,对象可以由系统设置好,直接供用户使用,也可以由程序员自己设计。Visual Basic 设计好的对象有窗体、各种控件、菜单、显示器、剪贴板等。用户使用最多的是窗体和控件。

类是同种对象的集合与抽象,是一个整体概念,也是创建对象实例的模板,而对象则是类的实例化。类与对象是面向对象程序设计语言的基础。

下面以“汽车”为例,说明类与对象的关系。

汽车是一个笼统的名称,是整体概念,我们把汽车看成一个“类”,一辆辆具体的汽车(如你的汽车、我的汽车)是这个类的实例,是属于这个类的对象。

严格地说,工具箱的各种控件并不是对象,而是代表了各个不同的类。通过类的实例化,可以得到真正的对象。当在窗体上放置一个控件时,就将类转换为对象,即创建了一个控件对象,简称为控件。

例如,图 1-13 为左边工具箱上凸起的矩形块即命令按钮,代表 CommandButton 类,它确定了CommandButton 的属性、方法和事件。窗体上显示的是两个CommandButton对象,是类的实例化,它们继承了CommandButton类的特征,也可以根据需要修改各自的属性,如字体、颜色、大小等。图 1-13 Visual Basic 中的类与对象1.3.2 属性

对象中的数据保存在属性中。属性是用来描述和反映对象特征的参数。例如,“控件名称”(Name)、“颜色”(Color)及“是否可见”(Visible)等属性决定了对象展现给用户的界面具有什么样的外观及功能。不同的对象具有不同的属性,如命令按钮有“Caption”属性而无“Text”属性,文本框无“Caption”属性而有“Text”属性。

在设计应用程序时,通过改变对象的属性值来改变对象的外观和行为。对象属性的设置可以通过以下两种方法来实现。(1)在设计阶段,选中某对象,利用属性窗口直接设置对象的属性。(2)在程序代码中通过赋值实现,其格式为

对象.属性=属性值

例如,给一个对象名为“Lable1”的标签的“Caption”属性赋值为字符串“请输入字符”,在程序代码中的书写格式为

Lable1.Caption="请输入字符"1.3.3 事件及事件过程

1.事件

事件即对象响应的动作,是 Visual Basic 预先定义的对象能识别的动作。每个对象都有一系列预先定义好的对象事件,如鼠标单击(Click)、双击(DblClick),对象失去焦点(LostFocus)、获取焦点(GetFocus)等。对象与对象之间、对象与系统之间及对象与程序之间的通信都是通过事件来进行的。例如,窗体上有一个名为“CmdHide”的命令按钮对象,当鼠标指针在该对象上单击时,系统跟踪到指针所指的对象上,并给该对象发送一个 Click 事件,系统则执行这个代码所描述的过程。执行结束后,控制权交还给系统,并等待下一个事件。

2.事件过程

事件过程是指附在该对象上的程序代码,是事件的处理程序,用来完成事件发生后所要做的动作。

对于窗体对象,其事件过程的形式如下:

Private Sub Form_事件过程名[(参数列表)]

…(事件过程代码)

End Sub

例如,对于窗体的单击事件编写了如下代码,当程序运行后,单击窗体,即在窗体中打印输出两个数据之和。

Private Sub Form_Click()

Dim X As Integer, Y As Integer, Z As Integer '定义变量

X = 20: Y = 30

Z = X + Y

Print "Z=": Z       '打印输出

End Sub

对于除窗体以外的对象,其事件过程的形式如下:

Private Sub 对象名_事件过程名[(参数列表)]

…(事件过程代码)

End Sub

例如,单击名为“cmdHide”的命令按钮,使命令按钮变为不可见,则对应的事件过程如下:

Private Sub cmdHide_Click()

CmdHide.Visible=False

End Sub

Visual Basic 具有可视化的编程机制,在程序设计时,可按要求“画”出各种对象来设计图形用户界面,程序员只需编写各对象要完成相应功能的程序。实际上,在图形用户界面的应用程序中,是由用户的动作即事件控制着程序运行的流向,每个事件都能驱动一段程序的运行。程序员只需编写响应用户动作的代码,而各个动作之间不一定有联系。这样的应用程序代码一般较短,程序既易于编写又易于维护。这种事件驱动的编程机制是非常适合图形用户界面的编程方式,是Visual Basic 的一个突出特点。1.3.4 方法

方法是面向对象程序设计语言为编程者提供的用来完成特定操作的过程和函数。在 Visual Basic中已将一些通用的过程和函数编写好并封装起来,作为方法供用户直接调用,这给用户的编程带来了极大的方便。因为方法是面向对象的,所以在调用时一定要指明对象。对象方法的调用格式为

[对象.]方法[参数名表]

其中,若省略了对象,表示是当前对象,一般指窗体。

例如,在窗体Form1上打印输出“VB程序设计”,可使用窗体的Print方法:

Form1.Print " VB 程序设计"

若当前窗体是Form1,则可写为

Print " VB 程序设计"

在 Visual Basic 中,窗体和控件是具有自己的属性、方法和事件的对象。可以把属性看做对象的性质,把方法看做对象的动作,而把事件看做对象的响应。

举个日常生活中简单的例子有助于理解这些抽象的概念。例如,你对同伴说:“请把那辆蓝色的别克 2000 型轿车开过来”,其实这句话里就包含了 Visual Basic 的对象、属性和方法,其中对象就是那辆“轿车”,也就是这件事情中的目标物;“蓝色”、“别克2000型”是用来描述轿车特征的,它就是轿车的属性;“开过来”就是对轿车实施的处理,即方法。1.4 窗体的常用属性、方法和事件

窗体(Form)也就是平时所说的窗口,它是 Visual Basic编程中最常见的对象,也是程序设计的基础。窗体是所有控件的容器,各种控件对象必须建立在窗体上,一个窗体对应一个窗体模块。1.4.1 属性

窗体属性决定了窗体的外观与操作。同 Windows 环境下的应用程序窗口一样,Visual Basic中的窗体在默认设置下具有控制菜单、最大化/还原按钮、最小化按钮、关闭按钮、边框等,如图1-14所示。图 1-14 窗体外观

窗体的许多属性既可以通过属性窗口设置,也可以在程序中设置。有些属性(如 MaxButton、BorderStyle等会影响窗体外观的属性)只能在设计状态设置。有些属性(如CurrentX、CurrentY等属性)只能在运行期间设置。

1.窗体的基本属性

窗体的基本属性有Name、Left、Top、Height、Width、Visible、Enabled、Font、ForeColor、Backcolor 等。在 Visual Basic 中的大多数控件基本上都有这些属性。(1)Name 属性。Visual Basic 中任何对象都有 Name 属性,在程序代码中就是通过该属性来引用、操作具体对象的。

首次在工程中添加窗体时,该窗体的名称被默认为Form1;添加第2个窗体,其名称被默认为Form2,依此类推。最好给Name属性设置一个有实际意义的名称,如给一个程序的主控窗体命名为“MainFrm”。这样在程序代码中的意义就很清楚,也会增强程序的可读性。(2)Left、Top属性。窗体运行在屏幕中,屏幕是窗体的容器,因此窗体的Left、Top属性值是相对屏幕左上角的坐标值。对于控件,Left、Top属性值则是相对“容器”左上角的坐标值,其默认单位是twip。1twip=1/20点=1/1440英寸=1/567厘米(3)Height、Width属性。返回或设置对象的高度和宽度。对于窗体,指的是窗口的高度和宽度,包括边框和标题栏。对于控件,这些属性使用控件所在“容器”的度量单位。

屏幕(Screen)、窗体(Form1)和命令按钮(OK)的Left、Top、Height、Width属性表示如图 1-15 所示,读者要注意,Left、Top 属性值是相对“容器”左上角的坐标值。在 Visual Basic 中除了屏幕、窗体可作为“容器”外,还有框架和图片框对象可作为“容器”。图 1-15 对象的 Left、Top、Height、Width 属性

例 1.1 在窗体 Form1 被加载时,将其大小设置为屏幕大小的 75%,并居中显示。通过窗体的Load事件来实现的程序代码如下:

Private Sub Form_Load ()

Form1.Width = Screen.Width * .75   '设置窗体的宽度

Form1.Height = Screen.Height * .75  '设置窗体的高度

' 在水平方向上居中显示

Form1.Left = (Screen.Width - Form1.Width) / 2

'在垂直方向上居中显示

Form1.Top = (Screen.Height - Form1.Height) / 2

End Sub(4)Caption 标题属性。决定出现在窗体的标题栏上的文本内容,也是当窗体被最小化后出现在窗体图标下的文本。图1-14中窗体的Caption属性值是“VB窗体”。(5)字体Font属性组。

FontName属性是字符型,决定对象上正文的字体(默认为宋体)。

FontSize属性是整型,决定对象上正文的字体大小。

FontBold属性是逻辑型,决定对象上正文是否是粗体。

FontItalic属性是逻辑型,决定对象上正文是否是斜体。

FontStrikeThru属性是逻辑型,决定对象上正文是否加删除线。

FontUnderLine属性是逻辑型,决定对象上正文是否带下划线。

FontName 属性。返回或设置对象中显示文本所用的字体。该属性的默认值取决于系统, Visual Basic 中可用的字体取决于系统的配置、显示设备和打印设备。与字体相关的属性只能设置为真正存在的字体的值。

FontSize 属性。返回或设置对象中显示文本所用的字体的大小。Visual Basic 中以磅为单位指定字体尺寸。

FontBold、FontItalic、FontStrikethru、FontUnderline属性。按下述格式返回或设置字体样式:Bold、Italic、Strikethru和Underline。对于图片框控件、窗体和打印机(Printer)对象,设置这些属性不会影响在控件或对象上已经绘出的图片和文本;对于其他控件,改变字体将会在屏幕上立刻生效。(6)Enabled 属性。用于确定一个窗体或控件是否能够对用户产生的事件作出反应。通过在运行时把Enabled属性设置为True或False来使窗体和控件成为有效或无效。如果使窗体或其他“容器”对象无效,即Enabled属性设为False,则在其中的所有控件也将自动无效。

例 1.2 下面的程序当文本框 Text1 不包含任何文本时使命令 Command 按钮无效。

Private Sub Text1_Change ()

If Text1.Text = "" Then   '查看文本框是否为空

Command1.Enabled = False  '使按钮无效

Else

Command1.Enabled = True  '使按钮有效

End If

End Sub(7)Visible属性。用于确定一个窗体或控件为可见或隐藏。要在启动时隐藏一个对象,可在设计时将 Visible 属性设置为 False,也可在代码中设置该属性使控件在运行时隐藏,然后又重新显示以响应某一特别事件。(8)BackColor 属性和 ForeColor 属性。BackColor 属性用于返回或设置对象的背景颜色, ForeColor属性用于返回或设置在对象里显示图片和文本的前景颜色。它们是十六进制长整型数据,在 Visual Basic 中通常用 Windows 运行环境的红—绿—蓝(RGB)颜色方案,使用调色板或在代码中使用RGB或QBColor函数指定标准RGB颜色。

例如,将窗体Form1的背景色设置为红色,则可使用:

Form1.BackColor = RGB(255, 0, 0)

也可用十六进制长整型数据或 Visual Basic 系统内部常量给 BackColor 属性赋值。例如:

Form1.BackColor = &HFF&

它等价于:

Form1.BackColor = vbRed

2.窗体的其他常用属性(1)MaxButton最大化按钮和MinButton最小化按钮。当值为True时,有最大或最小化按钮;值为False则无此按钮。( 2 ) Icon 控制图标属性。返回或设置窗体左上角显示的图标或最小化时显示的图标。它必须在ControlBox属性设置为True才有效。默认设置的图标是,单击属性窗口中Icon属性值后面的按钮,打开“加载图标”对话框,允许打开一个图标文件(*.Ico和*.Cur)作为这个属性的值,如图1-16所示。图 1-16 加载图标(3)ControlBox控制菜单框属性。如设置值为True,则有控制菜单;如设置为False,则无控件菜单,同时即使MaxButton属性和MinButton属性设置为True,窗体也无最大化按钮和最小化按钮。(4)Picture图片属性。设置窗体中要显示的图片。加载图片的操作同加载Icon控制图标的操作。(5)BorderStyle边框风格属性。通过改变BorderStyle属性,可以控制窗体如何调整大小,它可取6种值,如表1-1所示。表1-1 窗体对象BorderStyle属性的取值及意义(6)WindowsState属性。设置窗体运行的状态,它可取3个值,对应于3个状态,如表1-2所示。表1-2 WindowsState属性的取值(7)AutoRedraw属性。该属性决定窗体被隐藏或被另一窗口覆盖之后重新显示时,是否重新还原该窗体被隐藏或覆盖以前的画面,即是否重画如Circle、Line、Pset、Print等方法的输出。当为True时,重新还原该窗体以前的画面;当为False时,则不重画。在窗体 Load 事件中如果要使用 Print 方法在窗体上打印输出,就必须先将窗体的AutoRedraw属性设置为True,否则窗体启动后将没有输出结果。这是因为窗体是在Load事件执行完后才显示的。有关窗体的装载与卸载过程参见5.7.2小节。

读者一下子要记住这些属性是有一定困难的,要熟悉并应用这些窗体属性,最好的办法是上机实践,在“属性”窗口中更改窗体的一些属性,然后运行该应用程序并观察修改的效果。如果想得到关于每个属性的详细信息,可以选择该属性并按F1键查看联机帮助。1.4.2 事件

窗体事件是窗体识别的动作。与窗体有关的事件较多,Visual Basic 6.0 中有 30 多个,但平时在编程序时并不需要对所有事件都编写代码,读者只需掌握一些常用事件,了解这些事件的触发机制即可。下面介绍几个常用的窗体事件。

1.Click事件

在程序运行时单击窗体内的某个位置,Visual Basic 将调用窗体的 Form_Click 事件。如果单击的是窗体内的控件,则只能调用相应控件的Click事件。

2.DblClick事件

程序运行时双击窗体内的某个位置,就触发了两个事件:第1次按动鼠标时,触发Click事件;第2次按动鼠标时,产生DblClick事件。

3.Load事件

程序运行时,窗体被装入工作区,将触发它的 Load 事件,所以该事件通常用来在启动应用程序时对属性和变量初始化。

4.Unload事件

卸载窗体时触发该事件。

5.Resize事件

无论是用户交互,还是通过代码调整窗体的大小,都会触发一个Resize事件。

例如,可在窗体的Resize事件中编写如下代码,使窗体在调整大小时,始终位于窗体的正中:

Private Sub Form_Resize()

Form1.Left = Screen.Width / 2 - Form1.Width / 2

Form1.Top = Screen.Height / 2 - Form1.Height / 2

End Sub

上面程序中Screen是系统屏幕对象。关于Screen对象,读者可参见6.8.3小节。1.4.3 方法

窗体常用的方法有Print(打印输出)、Cls(清除)、Move(移动)、Show(显示)、Hide(隐藏)等。

1.Print方法

Print方法以当前所设置的前景色和字体在窗体上输出文本字符串。Print方法的调用格式为

窗体名.Print [{Spc(n)|Tab(n)} 表达式列表]

窗体名:是由窗体的Name属性所定义的窗体名称标识。

Spc(n):内部函数,用于在输出表达式前插入n个空格,允许重复使用。

Tab(n):内部函数,用于将指定表达式的值从窗体第n列开始输出,允许重复的使用。

表达式列表:是由一个或多个数值或字符类型的表达式组成的,如果在Print方法后面不出现表达式列表,则只在当前位置输出一个空行。当表达式列表由多个表达式组成时,表达式之间必须用空格、分号或逗号隔开,空格和分号等价。分号和逗号用来决定下一个表达式在窗体上显示的光标位置,分号表示光标定位在上一个显示字符之后;逗号表示光标定位在下一个打印区的开始位置,每隔14列为一个打印区的开始位置。

例 1.3 在窗体 Form1 的单击事件中写入如下代码:

Private Sub Form_Click()

a = 10: b = 3.14

Print "a="; a, "b="; b

Print "a="; a, "b="; b

Print "a="; a, "b="; b

Print        '空一行

Print "a="; a, "b="; b

Print "a="; a, Tab(18); "b="; b '从第18列开始打印输出b=

Print "a="; a, Spc(18); "b="; b '输出a值后,插入18个空后,输出b=

Print        '空一行

Print "a="; a, "b="; b

Print Tab(18); "a="; a, "b="; b '从第18列开始打印输出

Print Spc(18); "a="; a, "b="; b '空18列,即从第19列开始打印输出

End Sub

程序的运行结果如图1-17所示。图 1-17 Print 方法的使用

2.Cls(清除)方法

Cls方法用来清除运行时在窗体上显示的文本或图形。它的调用格式为

窗体名.Cls

Cls 只能清除运行时在窗体上显示的文本或图形,而不能清除窗体设计时的文本或图形,当使用C1s方法后,窗体的当前坐标属性CurrentX和CurrentY被设置为0。

3.Move(移动)方法

Move方法用来在屏幕上移动窗体。它的调用格式如下:

窗体名.Move Left[,Top[,Width[,Height]]]

其中,Left、Top、Width、Height 均为单精度数值型数据,分别用来表示窗体相对于屏幕左边缘的水平坐标、相对于屏幕顶部的垂直坐标、窗体的新宽度和新高度。

Move方法至少需要一个Left参数值,其余均可省略。如果要指定其余参数值,则必须按顺序依次给定前面的参数值,不能只指定Width值,而不指定Left和Top值,但允许只指定前面部分的参数,而省略后面部分。例如,允许只指定Left和Top值,而省略Width和Height值,此时窗体的宽度和高度在移动后保持不变。

例 1.4 使用 Move 方法移动一个窗体。双击窗体,窗体移动并定位在屏幕的左上角,同时窗体的长宽也缩小一半。

为了实现这一功能,可以在窗体Forml的“代码”窗口中输入下列代码:

Private Sub Form_DblClick()

Form1.Move 0, 0, Form1.Width / 2, Form1.Height / 2

End Sub

4.Show(显示)方法

Show方法用于在屏幕上显示一个窗体,使指定的窗体在屏幕上可见。调用Show方法与设置窗体Visible属性为True具有相同的效果。

其调用格式如下:

窗体名.Show [vbModal | vbModeless]

说明如下。(1)该方法有一个可选参数,它有两种可能的值:0(系统常量 VbModeless)或 1(系统常量VbModal)。若未指定参数,则默认为VbModeless。Show方法的可选参数表示从当前窗口或对话框切换到其他窗口或对话框之前用户必须采取的动作。当参数为VbModal时,要求用户必须先关闭显示的窗口或对话框,才能在本应用程序中做其他操作;当参数为 VbModeless 时,用户可以不对显示的窗口或对话框进行操作,就可以在本应用程序中做其他操作。(2)如果要显示的窗体事先未装入,该方法会自动装入该窗体再显示。

5.Hide(隐藏)方法

Hide方法用于隐藏指定的窗体,但不从内存中删除窗体。其调用格式为

窗体名.Hide

当一个窗体从屏幕上隐去时,其 Visible 属性被设置成 False,并且该窗体上的控件也变得不可访问,但对运行程序间的数据引用无影响。若要隐去的窗体没有装入,则Hide方法会装入该窗体但不显示。

下面是一个使用Hide和Show方法的例子。

例 1.5 实现将指定的窗体在屏幕上进行显示或隐藏的切换。

为了实现这一功能,可以在窗体Forml的“代码”窗口中输入下列代码:

Private Sub Form_Click()

Form1.Hide        '隐藏窗体

MsgBox "单击确定按钮,使窗体重现屏幕"  '显示信息

Forml.Show        '重现窗体

End Sub

窗体还有 Line、Pset、Circle、Refresh 等方法。这些方法将在第 7 章图形操作中详细讨论。1.5 命令按钮、标签、文本框1.5.1 命令按钮

在 Visual Basic 应用程序中,命令按钮(CommandButton)是使用最多的控件对象之一。常常用它来接收用户的操作信息,激发某些事件,实现一个命令的启动、中断、结束等操作。

命令按钮接收用户输入的命令可以有3种方式:

鼠标单击;

按Tab键焦点跳转到该按钮,再按Enter键;

使用快捷键(Alt+有下画线的字母)。

1.基本属性

Name、Height、Width、Top、Left、Enabled、Visible、Font等属性与在窗体中的使用相同。

2.常用属性

在窗体上添加了命令按钮后,就可对它进行属性设置。命令按钮和窗体类似也有其自身的属性。在程序设计中,常用属性主要有以下几种。(1)Caption 属性。该属性用于设置命令按钮上显示的文本。它既可以在属性窗口中设置,也可以在程序运行时设置。在运行时设置Caption属性将动态更新按钮文本。Caption属性最多包含255个字符。若标题超过了命令按钮的宽度,文本将会折到下一行。如果内容超过255个字符,则超出部分被截去。

可通过Caption属性创建命令按钮的访问键快捷方式,其方法是在作为快捷访问键的字母前添加一个连字符(&)。例如,为标题为“Print”的命令按钮创建快捷访问键“Alt+P”,则该命令按钮的Caption属性应设为“&Print”。运行时,字母P将带下画线,按Alt+P组合键就可选定命令按钮。(2)Default 和 Cancel 属性。当窗体上命令按钮数目较多时,通过键盘操作选择按钮就比较复杂。通常,在一组按钮中,对于“确定”和“取消”操作的按钮,Windows应用程序使用Enter键和 Esc 键来进行选择。Visual Basic 通过对命令按钮这两种属性的设置来实现这一功能。

指定一个默认命令按钮,应将其 Default 属性设置为 True。这时不管窗体上的哪一个非命令按钮控件有焦点,只要用户按Enter键,就相当于单击此默认命令按钮。同样,通过Cancel属性可以指定默认的取消按钮。在把命令按钮的Cancel属性设置为True后,不管窗体当前哪个非命令按钮控件有焦点,按Esc键,就相当于单击此默认按钮。一个窗体只能有一个命令按钮的 Default 属性设置为 True,也只能有一个命令按钮的Cancel属性设置为True。(3)Value 属性。在程序代码中也可以触发命令按钮,使之在程序运行时自动按下;只需将该按钮的Value属性设置为True,即可触发命令按钮的Click事件,执行命令按钮的Click事件过程。(4)Style属性。确定显示的形式:设置为0只能显示文字,设置为1则文字、图形均可显示。(5)Picture属性。使按钮可显示图片文件(.bmp和.ico),此属性只有当Style属性值设为1时才有效。(6)ToolTipText属性。凡是使用过Windows应用软件的用户都非常熟悉这种情况,当不是十分清楚软件中某些图标按钮的作用时,可以把光标移到这个图标按钮上,停留片刻,在这个图标按钮的下方就立即显示一个简短的文字提示行,说明这个图标按钮的作用,当把光标移开后,提示行立刻消失。Visual Basic 为这一功能给命令按钮提供了属性“ToolTipText”,在运行或设计时,只需将该项属性设置为需要的提示行文本即可。

例如,在命令按钮的属性窗口,将一命令按钮的 Caption属性设置为“取消”,FontSize设置为18磅,Style属性值设为1,给Picture属性加载一图形(*.bmp或*.gif)文件,ToolTipText属性值设置为“单击此命令按钮可取消以前操作”。程序运行后,将鼠标指针移动到命令按钮上的情况如图1-18所示。图 1-18 命令按钮属性设置

3.常用方法

在程序代码中,通过调用命令按钮的方法来实现与命令按钮相关的功能。与命令按钮相关的常用方法主要有以下两种。(1)Move方法。该方法的使用与窗体中的Move方法一样。Visual Basic系统中的所有可视控件都有该方法,不同的是窗体的移动是对屏幕而言,而控件的移动则是相对其“容器”对象而言。(2)SetFocus方法。该方法设置指定的命令按钮获得焦点。一旦使用SetFocus方法,用户的输入(如按 Enter 键)被立即引导到成为焦点的按钮上。使用该方法之前,必须要保证命令按钮当前处于可见和可用状态,即其Visible和Enabled属性应设置为True。

4.常用事件

对命令按钮控件来说,Click事件是最重要的触发方式。单击命令按钮时,将触发Click事件,并调用和执行已写入Click事件中的代码。多数情况下,主要是针对该事件过程来编写代码。1.5.2 标签控件

标签(Label)控件是用来显示文本的控件,该控件和文本框控件都是专门对文本进行处理的控件,但标签控件没有文本输入的功能。

标签控件在界面设计中的用途十分广泛,它主要用来标注和显示提示信息,通常是标识那些本身不具有标题(Caption)属性的控件。例如,可用Label控件为文本框、列表框、组合框的控件添加描述性的文字,或者用来显示如处理结果、事件进程等信息。

既可以在设计时通过属性窗口设定标签控件显示的内容,也可以在程序运行时通过代码改变控件显示的内容。

1.基本属性

Name、Height、Width、Top、Left、Enabled、Visible、Font、ForeColor、BackColor等属性与在窗体中的使用相同。

2.常用属性(1)Caption属性。Caption属性用来改变Label控件中显示的文本。Caption属性允许文本的长度最多为 1 024 字符。默认情况下,当文本超过控件宽度时,文本会自动换行,而当文本超过控件高度时,超

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载