标题：Visual Basic学习手册
图书信息
明日科技  巩建华  孙秀梅  安剑 等编著  ISBN 978-7-121-12996-4
2011年4月出版
定价：59.00元(含DVD光盘1张)
16开
512页
宣传语
编程成功之路从此开始！
内 容 简 介
本书以初学者为核心，全面介绍了使用Visual Basic进行程序开发的各种技术。在内容排列上由浅入深，让读者循序渐进掌握编程技术；在内容讲解上结合丰富的图解和形象的比喻，帮助读者理解“晦涩难懂”的技术；在内容形式上附有大量的提示、技巧、说明、情景应用、实战练习等栏目，夯实读者的编程基础，丰富编程经验。全书共分21章，其中，主要讲述了 Visual Basic集成开发环境的搭建、使用开发环境、掌握语言基础、掌握算法和程序控制结构、熟悉数组与集合、熟练运用过程和函数、设计和美化窗体界面、掌握常用控件的使用、掌握ActiveX控件的使用、掌握鼠标键盘处理操作、熟悉模块和类模块、熟悉系统对象、设计和应用菜单、工具栏、状态栏、演绎不一样的对话框程序、掌握图形图像技术、掌握文件系统编程、学习数据库编程技术、学习网络编程技术以及学会程序调试和错误处理，最后，通过在线考试系统和学生成绩管理系统两个实战项目使读者将所学知识更好地应用到实际开发当中。
本书附有配套光盘。光盘中提供本书所有程序的源代码、重点难点的实例视频录像。其中，源代码全部经过精心测试，能够在Windows 2000、Windows XP、Windows Server 2003、Windows 7系统中编译和运行。
本书适用于Visual Basic的爱好者、初学者和中级开发人员，也可以作为大中专院校和培训机构的教材。
前  言
让想要学习编程的人员都能够学会编程!
我可以学会编程吗？
当然可以！即使你没有基础，即使你是非计算机专业毕业，即使你已过而立之年，甚至是只有初中毕业。我国最早的计算机反病毒专家、江民杀毒软件创始人王江民，初中毕业，38岁开始学习计算机，因为英语基础不好，很多人认为他根本没有学会编程的可能。但王江民没有感觉自己不行，硬是克服各种困难，成为我国最成功的程序开发人员之一。
王江民学习编程的诀窍是什么？
是实践。王江民说：“计算机是实践性非常强的学科。我搞计算机是用计算机，不是学计算机。” 王江民首先学的是BASIC语言。当时，为了辅导上小学的孩子，对软件一片空白的王江民竟然决定编写程序代替家长辅导。短短3个月，王江民就边学边实践，编好了一套数学语文教学软件，试过后效果奇佳，参加电脑报软件交流，被评为第二名，誉为“教育软件第一”。因为这次成功，极大激发了王江民对编程的兴趣，使他从此把精力转到了软件领域。
所以说：实践，是学习编程的最好方法，也是培养编程乐趣、捕获发展机遇的最佳途径。值得注意的是，不要等学完全部知识才去实践，要随时学习，随时实践，哪怕只学了一点点。
这本书适合我吗？
非常适合！本书是学习Visual Basic 编程的最佳选择。所讲内容通俗易懂，易于学习，贴近实践。对于学习中的难点、重点，注意结合实际开发，采用情景应用的方式进行介绍和练习。本书光盘提供了完整的视频讲座，可以对照本书内容循序渐进进行学习。利用本书，不但可以学会编程，更能激发学习者理论联系实际的热情，开发出符合市场需求的软件和项目。
本书内容精要
本书分为基础篇、核心篇、高级篇和实战篇，共21章。内容安排按照从零起步，循序渐进的学习顺序，全面提高读者学、练、用的能力。本书知识结构如下图所示。
  
本书特色内容
 最基础、最易学
为了让初学者易于学习，本书力求内容通俗易懂，讲解寓教于乐。对于初学者难理解的专业术语，本书都进行了形象的解释，有些还提供了例图。书后附录中又单独将专业术语提炼出来，供读者学习时参考。例如，在讲解对象的属性和方法时，为使读者更容易理解，笔者将抽象的概念转化为日常生活中的对象。这里以生活中的汽车为例，汽车是一个对象，汽车的属性有名称、宽度、高度、颜色和产地等这些静态特征；汽车的方法有前进、后退、刹车和转弯等这些动态特征。在进行讲解对象时，还配有图形，如下图所示。
  

语音视频讲座
为了方便读者学习，本书附赠光盘中提供了27小时的视频讲座。其讲解细腻、层次清楚、互动性强，不但可以加深对书中内容的理解，还可以引导学习者掌握“是什么”、“为什么”、“怎么办”、“应注意些什么”的编程思维能力。视频讲座不仅对书中的内容进行了详细介绍，还对相关技术进行了有效扩展，对开发中容易犯的各种错误给出了解决方案。
 注重实用性
初学者经常会遇到这样的情况，书中讲解的技术能够理解，但不知道如何应用。例如，在学习抽象类时，读者能够自己定义抽象类并且能够从抽象类派生子类，但是不知道抽象类能够做什么，在哪里应用抽象类。本书在介绍技术时，注意强调技术的实用性，并且通过实例突出技术的应用价值。对于一些典型的应用，书中通过“情景应用”栏目进行重点介绍。
 实战互动练习
要掌握一项技术，最佳的方式就是多练习、多实践。本书每章都提供了多个供读者实践的实例任务，读者可以对照实例检验对知识的掌握情况。每个实例任务都分为“题目描述”、“技术指导”和“紧急救援”三个部分。其中“题目描述”给出了实例功能的详细描述和效果图，“技术指导”给出了开发思路和关键技术，“紧急救援”提供了下载实例源码和开发文档的地址链接。
超值DVD光盘
为了帮助读者学习和使用书中的实例，本书附赠DVD光盘1张，里面不仅提供书中所有实例项目的源代码、素材、光盘使用说明书，还提供了27小时的视频专题录像以及5个项目源码。光盘目录如下图所示。
  
本书适用人群
本书是一部零基础编程图书，非常适合以下人员阅读：
  零基础的初学编程人员          初、中级程序开发人员
  编程爱好者                    想学编程的各企、事业单位在职人员
  大中专院校的老师和学生        相关培训机构的老师和学员
本书参与作者
本书由明日科技组织编写，参加编写的有巩建华、孙秀梅、安剑、杨丽、顾丽丽、刘玲玲、孟范胜、董大永、李继业、尹强、张磊、王小科、赛奎春、吕双、刘锐宁等。由于作者水平有限，疏漏和不足之处在所难免，欢迎广大读者提出宝贵意见。
非学无以广才，非志无以成学。
祝大家读书快乐！
明日科技
目  录
第1篇  基础篇
第1章  初识Visual Basic 2
1.1  介绍Visual Basic 3
1.1.1  了解Visual Basic 3
1.1.2  追溯Visual Basic的发展历史 3
1.1.3  介绍Visual Basic版本 4
1.1.4  如何学好Visual Basic 5
1.2  认识Visual Basic的强大优势 5
1.2.1  面向对象的程序设计语言 6
1.2.2  事件驱动机制 6
1.2.3  可视化编程 6
1.2.4  软件集成式开发 6
1.2.5  强大的数据库访问功能 6
1.2.6  网络功能 7
1.2.7  联机帮助功能 7
1.3  熟悉身边的Visual Basic
1.3  成功案例 7
1.4  搭建Visual Basic开发环境 8
1.4.1  安装Visual Basic开发环境 8
1.4.2  启动Visual Basic开发环境 10
1.5  开发第一个Visual Basic
1.5  程序——你好程序 12
1.6  本章小结 13
第2章  熟悉Visual Basic 6.0开发环境 14
2.1  介绍Visual Basic 6.0的集成开发环境 15
2.1.1  认识菜单栏——显示所有可用的操作 16
2.1.2  使用工具栏快速调用菜单栏命令 18
2.1.3  利用工具箱中的控件设计程序 18
2.1.4  使用工程资源管理器显示工程2.1.4  中的资源 20
2.1.5  利用属性窗口设置对象的属性 21
2.1.6  运用布局窗口设置窗体位置 21
2.1.7  在代码编辑窗口中书写程序 21
2.1.8  使用窗体设计器设计程序界面 22
2.2  定制开发环境 22
2.2.1  定制开发环境 22
2.2.2  为开发环境提供鼠标滚轮 23
2.3  使用Visual Basic 6.0的帮助系统 23
2.3.1  安装与使用MSDN Library 24
2.3.2  使用Visual Basic的帮助菜单——MSDN 24
2.4  创建Visual Basic应用程序——2.4  加法运算 26
2.4.1  创建工程文件 26
2.4.2  设计界面 26
2.4.3  编写代码 27
2.4.4  调试运行 27
2.4.5  保存工程 27
2.4.6  编译程序 27
2.5  实战练习 28
2.5.1  设置窗体宽度和高度 28
2.5.2  在“立即”窗口中显示输入的信息 28
2.6  本章小结 29
第3章  掌握Visual Basic语言基础 30
3.1  简述对象概念 31
3.1.1  什么是对象 31
3.1.2  熟悉对象的属性 31
3.1.3  理解对象的方法 32
3.1.4  了解对象的事件 33
3.2  了解语句组成要素 34
3.2.1  认识Visual Basic中的关键字 34
3.2.2  掌握标识符的使用 34
3.3  掌握数据类型 35
3.3.1  基本数据类型 36
3.3.2  记录类型 39
3.3.3  枚举类型 40
3.4  学习使用变量 41
3.4.1  什么是变量 41
3.4.2  掌握变量的命名规则 41
3.4.3  声明变量 42
3.4.4  变量的作用域 44
3.4.5  理解静态变量的作用 45
3.4.6  处理变量同名问题 45
3.4.7  情景应用——实现两个
3.2.1  变量的交换（不借助第三个变量） 46
3.5  学习使用常量 47
3.5.1  声明常量 47
3.5.2  局部常量和全局常量 47
3.5.3  情景应用——使用自定义常量计算圆的面积 48
3.6  掌握运算符和表达式 48
3.6.1  学会使用运算符 49
3.6.2  了解表达式的构成 50
3.6.3  运算符的优先级 50
3.7  熟悉代码编写规则 51
3.7.1  对象命名规则 51
3.7.2  代码书写规则 52
3.7.3  处理关键字冲突 53
3.7.4  了解代码注释规则 53
3.8  实战练习 55
3.8.1  用“+”运算符进行加法和串联字符串 55
3.8.2  使用公用变量记录当前登录用户 55
3.8.3  正确使用“&”和“+” 56
3.9  本章小结 57
第4章  掌握算法和程序控制结构 58
4.1  了解算法 59
4.1.1  什么是算法 59
4.1.2  熟悉算法的特点 59
4.1.3  算法的描述方法 60
4.1.4  了解程序三种控制结构 60
4.2  学习使用顺序结构 62
4.2.1  使用赋值语句给变量赋值 63
4.2.2  将用户数据输入到应用程序 64
4.2.3  将指定信息显示给用户 65
4.3  学习使用选择结构 68
4.3.1  单分支If…Then语句 68
4.3.2  双分支If…Then…Else语句 69
4.3.3  If语句的嵌套 70
4.3.4  多分支If…Then…ElseIf语句 73
4.3.5  利用Select Case语句处理多分支控制结构 74
4.3.6  使用IIf函数简化程序 76
4.3.7  情景应用——十进制转换为其他进制 77
4.4  学习使用循环结构 77
4.4.1  For…Next循环语句 78
4.4.2  For Each…Next循环语句 79
4.4.3  Do…Loop循环语句 80
4.4.4  掌握While…Wend循环语句 83
4.4.5  在应用程序中使用多重循环 83
4.4.6  学会选择结构与循环结构的嵌套 84
4.4.7  情景应用——起泡排序算法的实现 85
4.5  了解其他辅助控制语句 86
4.5.1  跳转语句GoTo 86
4.5.2  复用语句With…End With 87
4.5.3  退出语句Exit 88
4.5.4  结束语句End 88
4.6  实战练习 89
4.6.1  求100以内的素数 89
4.6.2  用Do While语句求最大公约数和最小公倍数 90
4.6.3  简单的加密解密算法 91
4.7  本章小结 91
第5章  熟悉数组与集合 92
5.1  认识数组 93
5.1.1  数组的概念 93
5.1.2  数组与简单变量的区别 94
5.1.3  了解数组的分类 94
5.2  掌握静态数组的使用 94
5.2.1  声明和使用一维数组 94
5.2.2  理解二维数组 96
5.2.3  定义多维数组 96
5.2.4  了解数组中的数组 97
5.2.5  情景应用——制作幼儿识字卡片 98
5.3  熟悉动态数组的使用 100
5.3.1  声明动态数组 100
5.3.2  调用动态数组 101
5.4  熟练运用数组的基本操作 101
5.4.1  对数组元素进行初始化 102
5.4.2  访问数组中的元素 102
5.4.3  向数组中插入元素 102
5.4.4  删除数组中的元素 103
5.4.5  查找数组中的元素 104
5.5  学习运用与数组相关的函数及语句 104
5.5.1  利用Array函数给数组赋值 104
5.5.2  利用UBound和LBound函数获得数组下标 105
5.5.3  利用Split函数创建数组 105
5.5.4  利用Option Base语句定义数组下标 106
5.6  认识控件数组 107
5.6.1  了解控件数组的概念 107
5.6.2  声明控件数组 107
5.6.3  调用控件数组 108
5.6.4  情景应用——利用控件数组设置控件状态 108
5.7  了解集合的使用 109
5.7.1  集合的概念 109
5.7.2  数据集合对象的应用 109
5.8  实战练习 110
5.8.1  利用数组随机抽取幸运观众 110
5.8.2  利用数组实现矩阵转换 110
5.8.3  使用Split函数分隔明日公司网址 111
5.9  本章小结 111
第6章  熟练运用过程和函数 112
6.1  简述过程的概念 113
6.2  掌握Sub过程的使用 113
6.2.1  学会使用事件过程 114
6.2.2  掌握通用过程 115
6.2.3  调用Sub过程 115
6.3  掌握Function过程的使用 116
6.3.1  Function过程概述 116
6.3.2  调用Function过程 117
6.4  学习使用参数传递 117
6.4.1  了解形式参数和实际参数 118
6.4.2  理解值传递和地址传递 118
6.4.3  传递数组的参数 119
6.4.4  传递对象的参数 120
6.5  了解可选参数与可变参数 121
6.5.1  什么是可选参数 121
6.5.2  理解可变参数 121
6.6  学习过程的嵌套调用和递归调用 122
6.6.1  过程的嵌套调用 122
6.6.2  过程的递归调用 122
6.7  了解Sub Main过程 123
6.8  了解过程的作用域 124
6.9  学习使用常用内部函数 125
6.9.1  数学函数 125
6.9.2  字符串函数 125
6.9.3  类型转换函数 126
6.9.4  判断函数 127
6.9.5  日期和时间函数 127
6.9.6  随机函数 128
6.9.7  格式化函数 128
6.9.8  Shell函数 130
6.9.9  情景应用——倒计时程序 131
6.9.10  情景应用——幸运抽奖 132
6.10  熟悉API函数的使用 133
6.10.1  API函数概述 133
6.10.2  使用API文本浏览器 133
6.10.3  声明API函数 135
6.10.4  定义API常数 136
6.10.5  设置API类型 136
6.11  实战练习 136
6.11.1  自定义获取汉字拼音简码的函数 136
6.11.2  计算加权平均值 137
6.11.3  掷骰子 137
6.12  本章小结 138
第7章  设计和美化窗体界面 139
7.1  介绍窗体 140
7.1.1  了解窗体的构成 140
7.1.2  熟悉窗体类型与结构 141
7.1.3  添加和删除窗体 141
7.2  掌握窗体的加载与卸载 143
7.2.1  利用Load语句加载窗体 143
7.2.2  利用Unload语句卸载窗体 143
7.3  熟练使用窗体的属性 143
7.3.1  重新定义窗体的名称和标题 144
7.3.2  设置窗体图标 144
7.3.3  设计窗体的显示风格 145
7.3.4  调整窗体的显示状态和显示位置 146
7.3.5  给窗体添加背景图片 147
7.3.6  情景应用——窗体抖动 148
7.4  熟练使用窗体的方法 150
7.4.1  利用Show方法显示窗体 150
7.4.2  利用Hide方法隐藏窗体 151
7.4.3  利用Move方法移动窗体 151
7.4.4  利用Print方法打印窗体 152
7.5  掌握窗体的事件 153
7.5.1  利用Click/DbClick事件实现单击和双击 153
7.5.2  利用Initialize事件实现窗体初始化 154
7.5.3  利用Load/Unload/QueryUnload事件实现载入和卸载 154
7.5.4  利用Paint/Resize事件实现窗体重绘 157
7.5.5  利用Activate/Deactivate事件实现窗体的活动性 158
7.5.6  利用GotFocus/LostFocus事件处理窗体焦点 159
7.6  认识窗体的生命周期窗体事件的发生次序） 160
7.7  学习使用MDI窗体 162
7.7.1  MDI窗体概述 162
7.7.2  创建MDI应用程序 163
7.7.3  MDI窗体的MDIChild属性 163
7.7.4  情景应用——设计MDI主窗体 164
7.8  实战练习 166
7.8.1  欢迎窗体 166
7.8.2  整个窗体铺满图片 166
7.8.3  创建字形窗体 167
7.9  本章小结 168
第8章  掌握常用控件的使用 169
8.1  介绍控件的概念 170
8.1.1  了解控件的作用 170
8.1.2  理解控件与对象的关系 170
8.1.3  认识控件的属性、方法和事件 170
8.2  熟悉控件的分类 171
8.2.1  直接使用标准内部控件 171
8.2.2  将ActiveX控件添加到工具箱 171
8.2.3  学会使用可插入对象 171
8.3  掌握控件的相关操作 172
8.3.1  添加控件 172
8.3.2  对齐控件 173
8.3.3  调整控件前后顺序 174
8.3.4  调整控件的大小 175
8.3.5  锁定控件 175
8.3.6  删除控件 176
8.3.7  恢复被删除的控件 176
8.4  熟练使用标签和文本框 176
8.4.1  标签控件（Label控件） 176
8.4.2  文本框控件
7.3.1  （TextBox控件） 178
8.4.3  情景应用——使用标签控件模拟按钮动作 180
8.5  熟练使用命令按钮、单选按钮、复选框及框架 181
8.5.1  使用命令按钮（CommandButton控件） 181
8.5.2  使用单选按钮（OptionButton控件） 182
8.5.3  使用复选框（CheckBox控件） 184
8.5.4  使用框架（Frame控件） 186
8.6  熟练使用列表框与下拉列表框 186
8.6.1  使用列表框（ListBox控件） 186
8.6.2  使用下拉列表框（ComboBox控件） 189
8.6.3  情景应用——在ListBox控件间实现数据交换 192
8.7  学习使用滚动条（HScrollBar控件和VScrollBar控件） 193
8.8  实战练习 196
8.8.1  限制文本框输入字符数 196
8.8.2  格式化文本为指定格式 196
8.8.3  正如何让列表框多列显示数据 197
8.9  本章小结 198
第2篇  核心篇
第9章  掌握ActiveX控件 200
9.1  介绍ActiveX控件 201
9.1.1  添加ActiveX控件 201
9.1.2  删除ActiveX控件 201
9.1.3  注册ActiveX控件 202
9.2  应用ListView控件开发程序 202
9.2.1  ListView控件的概述 202
9.2.2  ListView控件的常用属性和方法 203
9.2.3  使用ListView控件导航数据 207
9.2.4  情景应用——使用ListView控件显示数据 208
9.3  应用TreeView控件开发程序 210
9.3.1  TreeView控件的概述 210
9.3.2  TreeView控件的常用属性和方法 211
9.3.3  使用TreeView控件导航数据 215
9.3.4  情景应用——使用TreeView控件显示数据 218
9.4  熟悉SSTab控件的使用 219
9.4.1  SSTab控件的概述 219
9.4.2  SSTab控件的常用属性 219
9.4.3  情景应用——使用SSTab控件分页显示数据 220
9.5  熟悉ProgressBar控件的使用 222
9.5.1  ProgressBar控件的概述 222
9.5.2  ProgressBar控件的常用属性 222
9.5.3  情景应用——使用ProgressBar
9.5.2  控件显示数据备份进度 223
9.6  熟练使用ImageList控件 224
9.6.1  ImageList控件的概述 224
9.6.2  ImageList控件的常用属性 225
9.6.3  情景应用——使用ImageList控件将图片显示在 TreeView中 225
9.7  熟悉DTPicker控件的使用 226
9.7.1  DTPicker控件的概述 226
9.7.2  DTPicker控件的常用属性 226
9.7.3  情景应用——使用DTPicker控件录入数据 228
9.8  实战练习 229
9.8.1  设置TreeView控件的背景色 229
9.8.2  设置ListView控件的行间隔颜色 230
9.8.3  为启动界面添加进度条 230
9.9  本章小结 231
第10章  掌握鼠标键盘处理操作 232
10.1  了解鼠标指针的设置 233
10.1.1  设置鼠标指针的形状 233
10.1.2  将鼠标指针设置为指定的图片 234
10.1.3  将鼠标指针设置为指定的动画 235
10.2  掌握鼠标事件的响应 235
10.2.1  响应Click事件和DbClick事件 235
10.2.2  响应MouseDown事件和MouseUp事件 237
10.2.3  掌握MouseMove事件的使用 238
10.2.4  情景应用——鼠标点不到的按钮 238
10.2.5  情景应用——使用鼠标绘图 239
10.3  掌握键盘事件的响应 240
10.3.1  掌握KeyDown事件和KeyUp事件的使用 240
10.3.2  掌握KeyPress事件的使用 244
10.4  实战练习 245
10.4.1  变换标签颜色 245
10.4.2  按【Enter】键移动焦点 246
10.4.3  键盘ASCII码查询 246
10.5  本章小结 247
第11章  熟悉模块和类模块 248
11.1  学习使用模块 249
11.1.1  模块的概述 249
11.1.2  创建模块 249
11.1.3  添加现存的标准模块 249
11.2  创建模块的典型应用 250
11.3  创建和使用类模块 253
11.3.1  类模块的概述 253
11.3.2  创建类模块 253
11.3.3  添加现有的类模块 253
11.3.4  理解标准模块和类模块的区别 254
11.4  创建类模块的典型应用 254
11.5  本章小结 260
第12章  熟悉系统对象 261
12.1  熟练应用程序对象（App） 262
12.1.1  App对象概述 262
12.1.2  利用APP对象动态识别路径 265
12.2  熟练应用屏幕对象
12.2  （Screen） 265
12.2.1  Screen对象概述 266
12.2.2  Screen对象的常用属性 266
12.3  熟练使用剪切板对象
12.2  （Clipboard） 267
12.3.1  Clipboard对象概述 267
12.3.2  Clipboard对象的常用
12.3.2  方法 267
12.4  熟练应用调试对象
12.2  （Debug） 270
12.4.1  Debug对象概述 270
12.4.2  利用Debug对象调试程序 271
12.5  熟练使用打印对象（Printer
12.2  和Printers集合） 271
12.5.1  理解Printer对象和Printers集合 272
12.5.2  情景应用——利用Printer
10.1.2  对象获得打印机的字体列表 272
12.6  实战练习 272
12.6.1  获取显示器当前的分辨率 272
12.6.2  将剪切板中的字符串显示在文本框中 273
12.7  本章小结 273
第13章  设计和应用菜单、工具栏、状态栏 274
13.1  学习设计下拉式菜单 275
13.1.1  认识下拉式菜单的组成 275
13.1.2  利用菜单编辑器制作菜单 276
13.1.3  给菜单添加快捷键和访问键 279
13.1.4  给菜单添加分割条 279
13.1.5  创建复选菜单 280
13.1.6  制作级联菜单 280
13.1.7  修饰菜单 281
13.1.8  设置菜单无效 282
13.1.9  为菜单事件添加代码 282
13.1.10  使用菜单数组 283
13.1.11  情景应用——改变菜单的颜色 283
13.2  学习使用弹出式菜单 284
13.2.1  设计弹出式菜单 284
13.2.2  调用弹出式菜单 285
13.3  学习设计工具栏 285
13.3.1  工具栏概述 285
13.3.2  利用ToolBar控件创建工具栏 286
13.3.3  为工具栏按钮设置分组 289
13.3.4  给工具栏添加下拉菜单 289
13.3.5  给工具栏按钮添加事件处理代码 290
13.4  学习设计状态栏 291
13.4.1  状态栏概述 291
13.4.2  在状态栏中显示日期、时间 291
13.4.3  在状态栏中显示操作员信息 292
13.4.4  情景应用——在状态栏中显示鼠标位置 293
13.4.5  在状态栏中显示当前
13.3.2  窗体名称 293
13.4.6  情景应用——在状态栏中显示当前状态 294
13.5  实战练习 295
13.5.1  可收缩展开的菜单 295
13.5.2  制作控件上的弹出式下拉菜单 296
13.5.3  设计带图标的菜单项 296
13.6  本章小结 297
第14章  演绎不一样的对话框程序 298
14.1  学习应用输入对话框
14.1  （InputBox） 299
14.2  学习应用消息对话框（MsgBox） 300
14.3  熟悉使用自定义对话框 301
14.3.1  由普通窗体创建的
14.3.1  自定义对话框 301
14.3.2  使用对话框模板创建的对话框 302
14.3.3  显示与关闭自定义对话框 303
14.4  熟悉使用公用对话框 303
14.4.1  公用对话框概述 303
14.4.2  使用“打开”对话框 304
14.4.3  使用“另存为”对话框 305
14.4.4  使用“颜色”对话框 306
14.4.5  使用“字体”对话框 307
14.4.6  使用“打印”对话框 308
14.4.7  使用“帮助”对话框 309
14.5  实战练习 309
14.5.1  使用“颜色”对话框设置文字颜色 309
14.5.2  使用对话框打开图片 310
14.6  本章小结 311
第3篇  高级篇
第15章  掌握图形图像技术 314
15.1  了解图形操作基础 315
15.1.1  了解Visual Basic的坐标系统（默认、自定义） 315
15.1.2  学习颜色函数（QBColor函数、RGB函数） 316
15.2  了解图形控件 317
15.2.1  使用形状控件（Shape控件） 317
15.2.2  使用画线工具控件
14.3.1  （Line控件） 318
15.3  学习图形属性 319
15.3.1  设置绘图坐标（CurrentX和CurrentY属性） 319
15.3.2  设置图形位置和大小（Left和Top、Height和Width属性） 320
15.3.3  设置图形的边框效果（BorderStyle、BorderWidth
14.3.1  和 BorderColor属性） 321
15.3.4  设置绘制效果（DrawWidth、DrawStyle和DrawMode属性） 322
15.3.5  设置前景色和背景色（BackColor和ForeColor属性） 325
15.3.6  设置填充效果（FillColor和FillStyle属性） 326
15.4  掌握图形方法 327
15.4.1  使用PSet方法画点 327
15.4.2  使用Point方法返回指定位置处的颜色 328
15.4.3  使用Line方法画线 329
15.4.4  使用Circle方法画圆 330
15.4.5  使用Cls方法清屏 331
15.4.6  使用PaintPicture方法绘制图形 331
15.5  认识图像处理控件 333
15.5.1  PictureBox控件概述 333
15.5.2  Image控件概述 333
15.5.3  情景应用——利用PictureBox控件浏览大幅图片 334
15.5.4  情景应用——利用Image控件制作小动画 335
15.6  熟悉图像处理函数 336
15.6.1  利用LoadPicture函数加载图像 336
15.6.2  利用SavePicture函数保存图片 336
15.6.3  情景应用——显示员工照片 337
15.6.4  情景应用——将图片保存到指定路径 337
15.7  实战练习 338
15.7.1  绘制网格 338
15.7.2  获得PictureBox控件中的颜色 338
15.7.3  实现图像的放大和缩小 339
15.8  本章小结 339
第16章  掌握文件系统编程 340
16.1  介绍文件的基本概念 341
16.1.1  解释文件的结构 341
16.1.2  对文件进行分类 341
16.1.3  文件处理的一般步骤 342
16.2  学习应用文件操作的语句和函数 342
16.2.1  学会使用文件操作语句 342
16.2.2  利用文件操作函数辅助开发 343
16.3  学习应用顺序文件 344
16.3.1  打开与关闭顺序文件 344
16.3.2  在顺序文件中读取或写入内容 345
16.4  熟悉使用随机文件 348
16.4.1  打开与关闭随机文件 348
16.4.2  在随机文件中读取或写入内容 349
16.5  熟悉使用二进制文件 350
16.5.1  打开与关闭二进制文件 350
16.5.2  在二进制文件中读取或写入内容 351
16.6  学习应用文件系统控件 352
16.6.1  驱动器列表框（DriveListBox控件） 352
16.6.2  目录列表框（DirListBox控件） 354
16.6.3  文件列表框（FileListBox控件） 356
16.6.4  文件系统控件的联动 359
16.7  了解文件系统对象 360
16.7.1  引入并使用FSO对象模型 360
16.7.2  创建和使用FileSystem
16.2.2  Object对象 360
16.7.3  利用Drive对象对
16.2.2  磁盘驱动器进行操作 362
16.7.4  利用Folder对象浏览文件夹 363
16.7.5  利用File对象操作文件 364
16.7.6  利用TextStream对象对文件进行读写操作 365
16.8  实战练习 367
16.8.1  获取文件的大小 367
16.8.2  获取文件最后修改时间 367
16.8.3  从文件逐行获取信息 368
16.9  本章小结 369
第17章  学习数据库编程技术 370
17.1  了解数据库基础 371
17.1.1  如何安装Access数据库 371
17.1.2  介绍SQL Server数据库 371
17.1.3  启动SQL Server数据库 372
17.1.4  创建SQL Server数据库 374
17.2  认识ADO对象 376
17.2.1  ADO对象概述 376
17.2.2  连接数据源——Connection对象 377
17.2.3  使用记录集对象——Recordset对象 378
17.2.4  掌握命令对象——Command对象 382
17.3  熟悉ADO控件 383
17.3.1  连接数据源 384
17.3.2  添加、修改和删除数据 388
17.4  掌握使用DataGrid控件 389
17.4.1  将DataGrid控件加入到工程中 390
17.4.2  DataGrid控件的主要属性和事件 390
17.4.3  用DataGrid控件显示数据表中的数据 391
17.4.4  通过DataGrid控件修改数据表中的数据 392
17.5  熟悉MSFlexGrid控件和
17.5  MSHFlexGrid控件 393
17.5.1  比较MSFlexGrid控件和MSHFlexGrid控件的功能 393
17.5.2  MSHFlexGrid控件的主要属性和方法 393
17.5.3  情景应用——使用MSHFlexGrid控件显示数据 395
17.5.4  情景应用——使用MSHFlexGrid控件批量录入数据 395
17.5.5  情景应用——使用MSHFlexGrid控件对 数据进行合并和排序 397
17.6  实战练习 398
17.6.1  使用ADO对象更新数据 398
17.6.2  使用DataGrid控件显示指定格式的数据 398
17.6.3  设置MSHFlexGrid控件的奇偶行颜色不同 399
17.7  本章小结 399
第18章  学习网络编程技术 400
18.1  熟悉网络基础知识 401
18.1.1  了解网络分层参考模型 401
18.1.2  介绍HTTP（超文本传输协议） 401
18.1.3  介绍FTP（文件传输协议） 401
18.2  掌握Winsock控件网络编程 402
18.2.1  理解TCP基础 402
18.2.2  理解UDP基础 402
18.2.3  Winsock控件的概述 402
18.2.4  开发客户端/服务器端聊天程序 405
18.3  掌握Internet Transfer控件
18.2  网络编程 407
18.3.1  Internet Transfer控件的概述 407
18.3.2  掌握Internet Transfer控件的使用 407
18.3.3  情景应用——判断InterNet连接状态 411
18.3.4  情景应用——获取网页源码 411
18.4  掌握WebBrowser控件
18.4  编程 412
18.4.1  WebBrowser控件概述 412
18.4.2  掌握WebBrowser控件的使用 412
18.4.3  情景应用——制作简单浏览器 414
18.5  了解Winsock API 415
18.5.1  Winsock API的概述 416
18.5.2  Winsock API函数 416
18.6  实战练习 417
18.6.1  显示本机计算机名和IP地址 417
18.6.2  提取网页标题名称 417
18.6.3  提取网页源码 418
18.7  本章小结 419
第19章  学会程序调试和错误处 420
19.1  发现Visual Basic中的错误 421
19.1.1  判别编译错误 421
19.1.2  判别运行错误 422
19.1.3  判别逻辑错误 422
19.2  学会使用调试工具和方法 422
19.2.1  利用调试工具栏调试程序 423
19.2.2  掌握本地窗口的使用 423
19.2.3  打开和使用立即窗口 424
19.2.4  添加和使用监视窗口 424
19.2.5  插入断点和逐语句跟踪 425
19.3  熟悉错误处理语句和对象 426
19.3.1  使用Err对象 426
19.3.2  利用On Error语句捕获错误 427
19.3.3  利用Resume语句退出错误处理 429
19.4  本章小结 430
第4篇  实战篇
第20章  在线考试系统 432
20.1  在线考试概述 433
20.1.1  概述 433
20.1.2  系统预览 433
20.1.3  数据库设计 434
20.2  关键技术 436
20.2.1  随机生成试题技术 436
20.2.2  考生答卷功能关键技术 441
20.2.3  提交试卷功能关键技术 442
20.2.4  修改试题关键技术 444
20.2.5  计时功能关键技术 444
20.3  系统登录功能设计 445
20.3.1  功能描述 445
20.3.2  窗体设计 445
20.3.3  登录功能实现过程 445
20.4  学生考试窗体设计 447
20.4.1  考试窗体功能描述 447
20.4.2  窗体设计 448
20.4.3  考试功能实现过程 451
20.5  系统管理设计 451
20.5.1  系统管理功能描述 452
20.5.2  窗体设计 452
20.5.3  管理功能设计分析 452
20.5.4  管理功能实现过程 453
20.6  添加试题设计 455
20.6.1  添加试题功能描述 455
20.6.2  窗体设计 455
20.6.3  添加试题实现过程 455
20.7  修改试题设计 456
20.7.1  修改试题功能描述 456
20.7.2  窗体设计 457
20.7.3  修改试题实现过程 457
20.8  系统参数设定 458
20.8.1  系统参数设置功能描述 459
20.8.2  窗体设计 459
20.8.3  考试参数设置实现过程 459
20.9  程序调试及错误处理 461
第21章  学生成绩管理系统 462
21.1  系统分析 463
21.1.1  需求分析 463
21.1.2  可行性分析 463
21.2  系统设计 463
21.2.1  系统目标 463
21.2.2  系统功能结构设计 464
21.2.3  系统预览 465
21.2.4  数据库概要说明 465
21.2.5  触发器的创建 466
21.3  公共模块设计 470
21.4  主要功能模块设计 471
21.4.1  用户登录模块 471
21.4.2  主窗体设计 472
21.4.3  学生信息管理模块 475
21.4.4  学生信息添加模块 477
21.4.5  课程信息管理 478
21.4.6  学生成绩查询模块 480
21.5  程序打包 481
21.6  开发常见问题与解决 482
21.6.1  连接数据库出错 482
21.6.2  书写错误的函数名 483
21.6.3  解决写错字段信息的问题 484
21.6.4  解决用户定义类型未
21.6.4  定义的问题 484
21.6.5  字段设置主键后不能插入重复值 485
21.7  总结 485
附录  专业术语表 486