【VB开源代码栏目提醒】:网学会员鉴于大家对VB开源代码十分关注,论文会员在此为大家搜集整理了“VB程序设计基础(全集) - 计算机教材”一文,供大家参考学习
陈庆章 前 言?? Visual Basic是目前进行Windows应用程序设计的最佳工具之一,也是最佳的程序设计入门语言,这一看法已经得到普遍认可。
?? 非计算机专业计算机基础教学的3个不同层次,分别解决的是“操作技能”、“思维训练”、“综合应用能力”问题。
学习一门程序设计语言,主要目的是要提高读者分析归纳、解决
问题的能力,在思维训练方面受益,并使得读者通过更系统、深入的学习后开发实用程序成为可能。
?? 因此,本书在内容上精选了Visual Basic 6.0中最基础、最常用并实用的部分;在编排和风格上力图体现循序渐进、深入浅出的特点;以样本程序示例教学,阶段性构筑读者的成就感,使得艰苦的程序设计工作升华为一种艺术创作,提供了一条通往程序设计高手的捷径。
前 言?? 本书的编写得到了浙江省高校
计算机教学研究会的大力支持。
本书共分9章,第1、第7章由浙江科技学院的罗朝盛教授编写,第2、第3、第4、第6章由浙江工业大学的胡同森副教授编写,第5章由浙江理工大学的庄红副教授编写,第8章由胡同森和浙江师范大学的朱建新编写,第9章由杭州电子科技大学的郭艳华副教授编写。
附录部分包括ASCII字符集、Visual Basic常用系统函数、Visual Basic常用属性、Visual Basic常用事件、Visual Basic常用方法以及部分对象能使用的
常用方法,为大家使用Visual Basic进行程序设计提供查找资料的方便。
全书由浙江工业大学陈庆章担任主编,由胡同森统稿。
前 言?? 另外,与本教材配套使用的另一本教学或自学参考书《Visual Basic学习及实践指导》将在2005年春季前出书。
书中将有本教材习题的参考答案和《Visual Basic
学习及实践指导》中附加习题的参考答案。
此书是教师教学、学生或读者自学非常实用的辅助参考书。
?? 希望所有读者和从事计算机基础教学的各位同仁,对本书多提宝贵意见,使其逐步完善。
在此,预致我们深深的谢意。
本书编委会 2004年7月 编委会名单方永平 胡维华 以姓氏笔画为序 陈庆章 何钦铭 项小仙 赵建民 俞瑞钊 蒋联海 雷 炜 楼程富 陈庆章 胡同森 罗朝盛 庄 红 郭艳华 朱建新 ??第1章 Visual Basic 6.0程序设计概述 ??第2章 程序设计基础 ??第3章 结构化程序设计与数组 ??第4章 函数与过程 ??第5章 常用控件 ??第6章 图形控件和图形方法 ??第7章 对话框和菜单程序设计 ??第8章 文 件 ??第9章 数据库与数据访问技术 第1章 Visual Basic 6.0程序设计概述 ??1.1 Visual Basic简介 ??1.2 Visual Basic 6.0可视化编程环境??1.3 Visual Basic中的基本概念??1.4 窗 体 ??1.5 Visual Basic程序的组成及工作方式 ??1.6 一个简单的Visual Basic程序的创建实例 ??1.7 小 结 1.1.1 Visual Basic的发展过程 ?? Basic(Beginners All-Purpose Symbol Instruction Code——初学者通用指令
代码)语言,是早期微型计算机中广泛使用的计算机程序设计高级语言。
Visual Basic在原有Basic语言的基础上进一步发展,综合了Basic语言和Windows操作系统的优点,把它们融合在一起,为初学者在Windows环境下编写应用程序提供了良好的开发环境。
“Visual”的原意是指“可视的”或“看得见的”,是为用户开发图形用户界面(GUI)提供的一种方法。
用户不需要编写大量
代码去描述界面元素的外观和位置,而只要把预先建立的对象加到屏幕上的适当位置,再进行简单的设置即可。
1.1.1 Visual Basic的发展过程?? 1991年,微软公司推出了Visual Basic1.0版,这在当时引起了很大的轰动。
许多专家把Visual Basic的出现当作是软件开发史上的一个具有划时代意义的事件。
其实,现在看来,Visual Basic1.0的功能实在是太弱了。
但在当时,它是第一个“可视”的编程软件。
?? 1992年初,发布Visual Basic Professional Toolkit,其中包含了一组由微软公司和其他公司开发的自定义控件。
这时,面向对象和复用性开始成为软件开发中的重要概念。
同年,又发布了Microsoft Visual Basic 2.0,其中包含了变体数据类型、预定义True、False常量和对象变量。
?? 1993年,Visual Basic 3.0的推出,新增了标准数据控件,带有Jet 1.1版本的数据库引擎。
?? 1995年,微软公司又推出了Visual Basic 4.0。
该版本不但大量改写了原来的Visual Basic,还加入了OLE技术并能够生成对象;同时还支持32位自定义控件OCX,并可从Visual Basic应用程序中访问其他
软件环境下生成的数据,如Microsoft Word、Microsoft Excel等。
1.1.1 Visual Basic的发展过程?? 1997年,微软公司推出了Visual Basic 5.0,它支持Microsoft COM标准,可以生成ActiveX控件,并有明显创新,开发人员可以用Visual Basic生成自己的自定义控件和DLL。
?? 1998年,微软公司又推出了Visual Basic 6.0。
较以前版本而言,其功能和性能都大大增强了,它还提供了新的、灵巧的数据库和Web开发工具,如增加了新的SQL Server交互方法,包括数据库的访问,使用数据库的新工具和控件等。
1.1.1 Visual Basic的发展过程 ?? Visual Basic 5.0/6.0有3种版本,分别为学习版、专业版和企业版。
◆ 学习版:它是最基本的版本,允许编写许多类型的程序,与其他版本相比,所带工具较少。
◆ 专业版:为专业人员而设计,它不仅包含了学习版的全部内容,还包含了许多其他功能,如具有创建ActiveX控件和ActiveX文档的能力;提供Internet开发功能,具有更多使用数据库的工具。
◆ 企业版:这是Visual Basic 6.0最完善的版本,该版本主要用于开发企业级分布式应用程序,它包含了许多附加工具,提供了完全集成SQL Server的所有工具。
?? 这3个版本是在相同的基础上建立起来的,以满足不同层次用户的需要。
对大多数用户来说,专业版就可以满足要求。
本书使用的是Visual Basic 6.0的企业版(中文),书中介绍的内容尽量做到与版本无关。
1.1.2 Visual Basic的特点 ?? Visual Basic是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,能用于Windows环境下的各种应用软件的开发,是目前较为流行的应用软件开发平台,具有许多明显的特点与优点,现归纳如下:??1?? Visual Basic采用的是面向对象的程序设计方法(OOP),它把程序和数据封装在一起而视作为一个对象。
Visual Basic提供了可视化的设计工具,把Windows界面设计的复杂性“隐藏”起来,开发人员只需按设计要求,用系统提供的工具,在屏幕上画出各种对象,并设置这些对象的属性,这样就可以在屏幕上“画”出所需的用户界面,不必为界面设计而编写大量的程序
代码,因而大大提高程序设计的效率。
1.1.2 Visual Basic的特点??2.事件驱动的编程方式?? 传统的程序设计是一种面向过程的方式,程序总是按事先设计好的流程运行,用户不能随意改变、控制程序的流向。
在Visual Basic中,用户的动作——事件控制着程序的流向,每个事件都能驱动一段程序的运行。
程序员只需编写响应用户动作的
代码,而各个动作之间不一定有联系,这样的应用程序
代码一般比较短,所以程序易于编写与维护。
??3.结构化的程序设计语言?? Visual Basic具有丰富的数据类型和结构化程序结构,其特点是:?? 1 增强了数值和字符串处理功能,比传统的Basic语言有许多的改进。
?? 2 提供了丰富的图形及动画指令,可方便地绘制各种图形。
?? 3 提供了定长和动态(变长)数组,有利于简化内存管理。
?? 4 增加了递归过程调用,使程序更为简练。
?? 5 提供了一个可供应用程序调用的包含多种类型的图标库。
?? 6 具有完善的调试、运行出错处理。
1.1.2 Visual Basic的特点??4.提供了易学易用的应用程序集成开发环境?? 在Visual Basic的集成开发环境中,用户可设计界面、编写
代码、调试
程序,直至将应用程序编译成可执行文件在Windows上运行,使用户在友好的开发环境中工作。
??5.支持多种数据库
系统的访问?? 利用Visual Basic的数据控件,可访问Microsoft Access、Dbase、Microsoft FoxPro、Paradox等,也可以访问Microsoft Excel、Lotusl 1-2-3等多种电子表格。
1.1.2 Visual Basic的特点??6.支持动态数据交换(DDE)、动态链接库(DLL)和对象的链接与嵌入(OLE)?? 动态数据交换是Microsoft Windows除了剪贴板和动态链接函数库以外,在Windows内部交换数据的第三种方式。
利用这项技术可在Visual Basic开发的应用程序与其他Windows应用程序之间建立数据
通信。
动态链接库中存放了所有Windows应用程序可以共享的
代码和资源,这些
代码或函数可以用多种语言写成。
Visual Basic利用这项技术可以调用几乎任何语言产生的DLL,也可以调用Windows应用程序接口(API)函数,以实现SDK所能实现的功能。
??7.完备的Help联机帮助功能?? 与Windows环境下的其他软件一样,在Visual Basic中,利用帮助菜单和功能键,用户可随时方便地得到所需的帮助信息。
Visual Basic帮助窗口中显示了有关的示例
代码,通过复制、粘贴操作可获得大量的示例
代码,为用户的学习和使用提供了极大的方便。
1.1.3 Visual Basic 6.0的新特性 ?? Visual Basic 6.0与以前的版本不同,它是Visual Studio家族的一个组件,保留了Visual Basic 5.0的优点,如在开发环境上的改进,增加了
工作组,在
代码编辑器中提供了控件属性/方法的自动提示,能编译生成本机
代码,大大提高程序的执行速度等。
同时,Visual Basic 6.0在数据访问技术、Internet技术及智能化向导方面都有了许多新的特性。
下面对Visual Basic 6.0的新特性作一个简单的概括。
??1.数据访问的新特性?? Visual Basic 6.0在数据访问技术方面比Visual Basic 5.0有了很大的增强,首先,它采用了一种新的数据访问技术ADO(Active Data Object),使之能更好地访问本地和远程的数据库。
其次,在数据环境方面,允许程序员可视化地创建和操作ADO连接及命令,为程序员操纵数据源提供了很大的方便。
另外,增加了ADO控件和集成的可视化数据库工具。
1.1.3 Visual Basic 6.0的新特性 ??2.Internet功能的增强??Internet是当今发展的潮流,Visual Basic 6.0在Internet方面的增强使得它已成为当前最强有力的开发工具之一。
??1 IIS程序设计:用Visual Basic 6.0的专业版和企业版可直接创建IIS应用程序,响应用户的要求。
??2 D
HTML的设计:利用Visual Basic 6.0,程序员可直接通过Visual Basic
代码来实现动态网页的
设计。
??3 Internet Explorer 4.x对下载ActiveX
文档的支持。
??3.控件、语言和向导方面的新增特性??1 DataGrid、DataList、DataCombo等新增的数据控件:相当于Data Base(简称DB)版本的DBGrid、OLEDBList和DBCombo,所不同的是它们都支持新的ADO控件。
??2 可以创建自己的数据源和数据绑定对象。
??3 函数可以将数组作为返回值,并且可以为可变大小的数组赋值。
??4 新增了安装向导、数据对象向导、数据窗体向导以及应用程序向导。
这些新增的向导,可以使开发人员设计出更优秀的应用程序。
1.1.3 Visual Basic 6.0的新特性 ??4??
代码的可移植性是面向对象编程的一个重要特点。
Visual Basic 6.0集成了Visual Component Manager(简称VCM,中文含义为可视化组件管理器)和Visual Modeler(可视化模块设计器)。
通过VCM,可以在Visual Basic的工程中方便地组织、查找、插入各种窗体、模板、类模块,甚至整个工程,为
代码的重新利用提供了很大的方便。
而Visual Modeler则可以将设计器和组件转化成Visual C或Visual Basic的
代码,它与VCM结合可以将Visual Basic中写的类,在其他工程甚至Visual C的工程中使用。
??5ActiveX?? 用Visual Basic 6.0创建的ActiveX控件,其外观和行为均和用C语言编写的控件一样,可以用在Visual C、Visual Basic、
Delphi,甚至Word和Access中。
??6?? Visual Basic 6.0有两张光盘的
文档资料,里边包括Visual Basic 6.0程序员设计手册、全文
搜索索引、Visual Basic文档以及Visual Basic程序样例等。
1.2.1 Visual Basic 6.0的集成开发环境主窗口 ?? Visual Basic 6.0集成开发环境(IDE),提供了整套工具,方便用户开发应用程序。
它在一个公共环境里集成了许多不同的功能,例如设计、编辑、编译和调试。
下面介绍Visual Basic 6.0的集成开发环境。
?? 当启动Visual Basic 6.0时,可以见到如图1-1所示的窗口,其中会提示选择要建立的工程类型。
图1-1 Visual Basic 6.0中可以建立的工程类型 1.2.1 Visual Basic 6.0的集成开发环境主窗口??使用Visual Basic 6.0可以生成下列13种类型的应用程序(图中仅看到10种,通过滚动条可看到另外3种):??在图1-1的窗口中有3个选项卡:??1 新建:这个选项卡中列出了11种可生成的工程类型。
??2 现存:这个选项卡中列出了可以选择和打开的现有工程。
??3 最新:这个选项卡中列出了最近使用过的工程,用户可以选择和打开一个需要的工程。
??当选择“新建”选项卡中的“标准EXE”图标并单击“打开”按钮,可以打开如图1-2所示的Visual Basic集成开发环境窗口。
1.2.1 Visual Basic 6.0的集成开发环境主窗口图1-2 Visual Basic 6.0集成开发环境 菜单栏工具栏标题栏工具箱工程管理窗口 属性窗口布局窗口立即窗口窗体设计窗口 1.2.1 Visual Basic 6.0的集成开发环境主窗口??需要说明的是正常启动时,可能见不到图1-2中的“立即”窗口。
在Visual Basic集成环境中的其他类似窗口,都可以通过“视图”菜单中的相应命令来打开和关闭。
??1??标题栏位于主窗口最上面的一行,如图1-3所示。
标题栏中间显示窗口标题及工作模式,Visual Basic有3种工作模式:设计(Design)模式、运行(Run)模式和中断(Break)模式。
启动时它显示“工程1-Microsoft Visual Basic设计”,表示它处于程序设计模式。
??1 设计模式:可进行用户界面的设计和
代码的编制,以完成应用程序的开发,如图1-2所示。
??2 运行模式:运行应用程序,这时不可编辑
代码,也不可编辑界面。
此时,标题栏中的标题为:“工程1 Microsoft Visual Basic 运行”。
??3 中断模式:应用程序运行暂时中断,这时可以编辑
代码,但不可编辑界面。
此时,标题栏中的标题为:“工程1 Microsoft Visual asic break”。
按F5键或单击工具栏的“继续”按钮 ,程序继续运行;单击“结束”按钮 ,程序停止运行。
1.2.1 Visual Basic 6.0的集成开发环境主窗口??2??Visual Basic集成开发环境的菜单栏中包含使用Visual Basic所需要的命令。
它除了提供标准“文件”、“编辑”、“视图”、“窗口”和“帮助”菜单之外,还提供了编程专用的功能菜单,如“工程”、“格式”、“调试”、“外接程序”等菜单,总共13项菜单,如图1-3所示。
工具栏标题栏菜单栏图1-3 Visual Basic 6.0集成开发环境的主窗口 1.2.1 Visual Basic 6.0的集成开发环境主窗口?? Visual Basic 6.0集成开发环境中的基本菜单有:1 文件:包含打开和保存工程以及生成可执行文件的命令。
2 编辑:包含编辑命令和其他一些格式化、编辑
代码的命令,以及其他编辑功能命令。
3 视图:包含显示和隐藏IDE元素的命令。
4 工程:包含在工程中添加构件、引用Windows对象和工具箱新工具的命令。
5 格式:包含对齐窗体控件的命令。
6 调试:包含一些通用的调试命令。
7 运行:包含启动、设置断点和终止当前应用程序运行的命令。
8 查询:包含操作数据库表时的
查询命令以及其他数据访问命令。
9 图表:包含操作Visual Basic工程时的图表处理命令。
10 工具:包含建立ActiveX控件时需要的工具命令,并可以启动菜单编辑器以及配置环境选项。
11 外接程序:包含可以随意增删的外接程序。
缺省时这个菜单中只有“可视化数据管理器”选项。
通过“外接程序管理器”命令可以增删外接程序。
12 窗口:包含屏幕窗口布局命令。
13 帮助:提供相关帮助信息。
1.2.1 Visual Basic 6.0的集成开发环境主窗口??3?? 工具栏在编程环境下提供对于常用命令的快速访问。
单击工具栏上的按钮,即可执行该按钮所代表的操作。
在缺省模式下,启动Visual Basic之后将显示“标准”工具栏。
其他工具栏,如“编辑”、“窗体设计”和“调试”工具栏可以从“视图”菜单中的“工具栏”命令中移进或移出。
工具栏紧贴在菜单栏下方,或以垂直条状紧贴在左边框上,如图1-3所示。
如果用鼠标将工具栏从某栏下面移开,则它能“悬”在窗口中。
一般情况下,工具栏在菜单栏的正下方。
1.2.2 窗体设计窗口 ?? “窗体设计窗口”也称为对象窗口。
Windows的应用程序运行后都会打开一个窗口,窗体设计窗口是应用程序最终面向用户的窗口,是屏幕中央的主窗口。
通过在窗体中添加控件并设置相应的属性来完成应用程序界面的设计。
每个窗口必须有一个窗体名字,系统启动后就会自动创建一个窗体(缺省名为Form1),用户可通过“工程/添加窗体”来创建新窗体或将已有的窗体添加到工程中。
每个窗体保存后都有一个窗体文件名(扩展名为.Frm)。
应注意窗体名即窗体的“Name”属性和窗体文件名的区别。
1.2.3 工具箱 ?? 系统启动后缺省的General工具箱就会出现在屏幕左边,其中每个图标表示一种控件,共有20个常用“部件”(即控件),如图1-4所示。
?? 指针(选择对象) ———— ————— 图片框(PictureBox) 标签(Label) —————— ——————文本框(TextBox) 框架(Frame) —————— —— 命令按钮(CommandButton) 复选框(CheckBox) ——— ———— 单选按钮(OptionButton) 组合框(ComboBox) ——— ——————— 列表框(ListBox) 水平滚动条(HscrollBar)—— ————— 垂直滚动条(VscrollBar) 定时器(Timer) ————— —— 驱动器列表框(DriveListBox) 目录列表框(DirListBox) — ———— 文件
列表框(FileListBox) 形状(Shape) —————— ————————— 画线(Line) 图像框(Image) ————— ——————— 数据库(Data) 图1-4 Visual Basic工具箱中的常用控件类型 1.2.3 工具箱??用户可以将不在工具箱中的其他ActiveX控件放到工具箱中。
通过“工程”菜单中的“部件”命令或从“工具箱”快捷菜单中选定“部件”选项卡,就会显示系统安装的所有ActiveX控件清单。
要将某控件加入到当前选项卡中,需单击要选定控件前面的方框,如图1-5所示,然后单击“确定”按钮,选定的ActiveX控件就会添加到工具栏中。
1-5 1.2.4 工程资源管理器 ?? 工程是指用于创建一个应用程序的文件的集合。
工程资源管理器列出了当前工程中的窗体和模块,如图1-6所示。
?? 在工程资源管理器窗口中有3个按钮,分别表示“查看
代码”、“查看对象”和“切换文件夹”。
?? 1 单击“查看
代码”按钮,可打开“
代码编辑器”查看
代码。
?? 2 单击“查看对象”按钮,可打开“窗体设计器”查看正在设计的窗体。
?? 3 单击“切换文件夹”按钮,则可以隐藏或显示包含在对象文件夹中个别项目列表。
1.2.4 工程资源管理器 图1-6 工程资源管理器 图1-7 属性设置窗口 1.2.5 属性窗口 ?? 属性是指对象的特征,如大小、标题或颜色等数据。
在Visual Basic 6.0设计模式中,属性窗口列出了当前选定窗体或控件的属性及其值,用户可以对这些属性值进行设置。
例如,要设置Command1命令按钮上显示的字符串,可以找到属性窗口的“Caption”属性,输入“开始”之类的字符串,如图1-7所示。
1.2.6 窗体布局窗口 ?? 窗体布局窗口显示在屏幕右下角。
用户可使用表示屏幕的小图像来布置应用程序中各窗体相对于主窗体的位置。
图1-8显示了桌面上两个窗体放置及其相对位置。
右键单击小屏幕,弹出快捷菜单,可通过该快捷菜单来对窗体启动位置进行设计,如要设计窗体Form1启动位置居屏幕中心,其操作如图1-9所示。
图1-8 窗体布局窗口 图1-9 设计窗体启动位置 1.2.7
代码编辑窗口 ?? 在设计模式中,通过双击窗体或窗体上的任何对象或单击“工程资源管理器”窗口中的“查看
代码”按钮都可打开
代码编辑器窗口。
代码编辑器是输入应用程序
代码的编辑器,应用程序的每个窗体或标准模块都有一个单独的
代码编辑器窗口,如图1-10所示。
图1-10
代码编辑器窗口 1.2.8 立即窗口 ??例如:??1 在立即窗口中使用赋值符给变量赋值。
即输入:X 3.14:Y2:Z30:PTrue: KFalse??2 使用“?表达式”或“Print表达式”输出其表达式的值。
操作如下: XY 5.14 输出结果 Print IntXY/2 4 输出结果 Not P Or K And P Or YgtZ False 输出结果 1.2.8 立即窗口 ??在Visual Basic集成环境中,运行“视图/立即窗口”命令或按CtrlG组合键即可打开如图1-11所示的窗口。
??“立即”窗口是Visual Basic所提供的一个系统对象,称为Debug对象,作为调试程序使用。
它只有方法,不具备任何事件和属性。
通常使用是Print方法,使用格式为:??Debug.print输出项列表??例如:Debug.print “
VB程序设计”??运行后在立即窗口输出:??
VB程序设计??在设计状态可以在立即窗口中进行一些简单的命令操作,如变量赋值,用“?”或Print(两者等价)输出一些表达式的值。
图1-11 立即窗口 1.2.8 立即窗口 ??操作结果如图1-12所示。
??此外,Visual Basic 6.0中还有2个非.