VB程序设计教程



Similar documents
MVB-1001.DOC

高 职 计 算 机 类 优 秀 教 材 书 目 * 序 号 书 号 (ISBN) 书 名 作 者 定 价 出 版 / 印 刷 日 期 ** 配 套 资 源 页 码 计 算 机 基 础 课 计 算 机 应 用 基 础 刘 升 贵 年 8 月

心理障碍防治(下).doc

Microsoft PowerPoint - OPVB1基本VB.ppt

全 国 高 等 职 业 教 育 规 划 教 材 21 世 纪 高 职 高 专 规 划 教 材 系 列 高 等 职 业 教 育 计 算 机 专 业 规 划 教 材 选 题 征 集 通 知 一 选 题 范 围 ( 不 仅 限 于 此 ) 选 题 方 向 选 题 名 计 算 机 基 础 计 算 机 应 用

中医疗法(下).doc

眼病防治

中国南北特色风味名菜 _八)

中医疗法(上).doc

2

穨ecr2_c.PDF

電腦相關罪行跨部門工作小組-報告書

i

发展党员工作手册

i

39898.indb

untitled

untitled

Microsoft Word - Panel Paper on T&D-Chinese _as at __final_.doc

Microsoft Word - 13院21号.doc

本 课 程 作 为 非 计 算 机 专 业 本 科 通 识 课 程, 是 一 门 理 论 和 实 践 紧 密 结 合 的 实 用 课 程, 内 容 包 括 计 算 机 基 础 部 分 和 程 序 设 计 部 分 计 算 机 基 础 部 分 涵 盖 计 算 机 软 硬 件 组 成 数 制 表 示 操

ebook43-11

四川省普通高等学校

509 (ii) (iii) (iv) (v) 200, , , , C 57

榫 卯 是 什 麼? 何 時 開 始 應 用 於 建 築 中? 38 中 國 傳 統 建 築 的 屋 頂 有 哪 幾 種 形 式? 40 大 內 高 手 的 大 內 指 什 麼? 42 街 坊 四 鄰 的 坊 和 街 分 別 指 什 麼? 44 北 京 四 合 院 的 典 型 格 局 是 怎 樣 的

尿路感染防治.doc

Microsoft Word - MP2018_Report_Chi _12Apr2012_.doc

南華大學數位論文

李天命的思考藝術

皮肤病防治.doc

性病防治

中国南北特色风味名菜 _一)

全唐诗24

Microsoft Word _2 課本1225_OK_0222修.doc

穨文件1

Microsoft Word - 小心翼翼的二十一點N.doc

14A 0.1%5% 14A 14A

穨_2_.PDF

(Chi)_.indb

樹 木 管 理 專 責 小 組 報 告 人 樹 共 融 綠 滿 家 園

女性减肥健身(四).doc

Teaching kit_A4_part4.indd

穨ac3-3.PDF

「香港中學文言文課程的設計與教學」單元設計範本

全唐诗28

穨學前教育課程指引.PDF

公 務 員 事 務 局

基于UML建模的管理管理信息系统项目案例导航——VB篇

最新监察执法全书(七十五).doc

Microsoft Word - 正文.doc

ZYWGML

(i) 1 (ii) (iii) (iv) 5 5 (v) (vi)

HKAS 002C

第 2 頁 (a) 擔 任 機 場 擴 建 統 籌 辦 總 監 的 首 席 政 府 工 程 師 職 位 第 3 點 ) ; (b) 擔 任 ( 機 場 擴 建 統 籌 辦 ) 的 首 長 級 丙 級 政 務 官 職 位 ; 以 及 (c) 擔 任 總 助 理 ( 機 場 擴 建 統 籌 辦 ) 的

1. 血 液 對 身 體 細 胞 的 重 要 性 身 體 得 以 健 康 運 作, 最 主 要 靠 的 是 血 管 內 的 血 液 ; 它 帶 著 養 分 與 氧 給 細 胞, 並 帶 回 廢 雜 物 及 二 氧 化 碳 排 出 體 外, 若 此 血 管 阻 塞 導 致 運 作 不 順 時, 各 部


Microsoft Word - 報告.doc

FEELING COMFORTABLE ABOUT SEX

cgn

untitled

Microsoft Word - report final.doc

上海市教育考试院关于印发新修订的

名人养生.doc

常见病防治(二).doc

香 港 舞 蹈 總 會    北 京 舞 蹈 學 院

一、

(As at 28

奥运风云榜(上).doc

Microsoft Word - EDB Panel Paper 2016 (Chi)_finalr

Adobe Photoshop PDF



-i-

Microsoft Word - 强迫性活动一览表.docx

厨房小知识(四)

妇女更年期保健.doc

小儿传染病防治(上)

<4D F736F F D B875B9B5A448ADFBBADEB27AA740B77EA4E2A5555FA95EAED6A641ADD75F2E646F63>

女性青春期保健(下).doc

避孕知识(下).doc

孕妇饮食调养(下).doc

禽畜饲料配制技术(一).doc

中老年保健必读(十一).doc

i

怎样使孩子更加聪明健康(七).doc

i

二零零六年一月二十三日會議

马太亨利完整圣经注释—雅歌

新婚夫妇必读(九).doc

江苏宁沪高速公路股份有限公司.PDF

糖尿病防治指南(四).doc

建築物拆卸作業守則2004年

最新执法工作手册(十七)

<4D F736F F D20CAB5D1E9CAD2B9DCC0EDC6BDCCA856342E315FD1A7C9FAD3C3BBA7B2D9D7F7D6B8C4CF2E646F63>

投稿類別:電子工程類

2. 我 沒 有 說 實 話, 因 為 我 的 鞋 子 其 實 是 [ 黑 色 / 藍 色 / 其 他 顏 色.]. 如 果 我 說 我 現 在 是 坐 著 的, 我 說 的 是 實 話 嗎? [ 我 說 的 對 還 是 不 對 ]? [ 等 對 方 回 答 ] 3. 這 是 [ 實 話 / 對 的

前言

Microsoft Word - Paper on PA (Chi)_ docx

《Visual Basic程序设计》实验课

<4D F736F F D203938BEC7A67EABD7B942B0CAC15AC075B3E6BF57A9DBA5CDC2B2B3B92DA5BFBD542E646F63>

Transcription:

高 等 学 校 教 材 Visual Basic 程 序 设 计 教 程 魏 东 平 郑 立 垠 梁 玉 环 石 油 大 学 出 版 社

内 容 提 要 本 书 是 按 高 等 学 校 计 算 机 程 序 设 计 课 程 教 学 大 纲 编 写 的 大 学 教 材, 主 要 包 括 VB 基 础 知 识 常 用 程 序 结 构 和 算 法 Windows 用 户 界 面 设 计 基 础 文 件 处 理 和 程 序 调 试 技 术 基 础 等 内 容 本 书 以 简 洁 生 动 的 语 言 和 大 量 形 象 实 用 的 范 例 系 统 介 绍 程 序 设 计 方 法, 侧 重 培 养 读 者 的 程 序 设 计 能 力, 较 少 涉 及 VB 的 扩 展 功 能, 如 图 形 多 媒 体 和 数 据 库 等 本 书 适 用 于 高 等 学 校 本 科 生 专 科 生, 也 可 用 作 全 国 计 算 机 等 级 考 试 的 教 学 用 书, 还 可 以 作 为 从 事 计 算 机 程 序 设 计 工 作 的 广 大 读 者 的 学 习 参 考 书 图 书 在 版 编 目 (CIP) 数 据 Visual Basic 程 序 设 计 教 程 / 魏 东 平 郑 立 垠 梁 玉 环. 东 营 : 石 油 大 学 出 版 社,2003.7 ISBN 7-5636-1789-2 Ⅰ. V Ⅱ. 魏 Ⅲ. Basic 语 言 程 序 设 计 教 材 Ⅳ. TP312 中 国 版 本 图 书 馆 CIP 数 据 核 字 (2003) 第 042219 号 Visual Basic 程 序 设 计 教 程 魏 东 平 郑 立 垠 梁 玉 环 出 版 者 : 石 油 大 学 出 版 社 ( 山 东 东 营, 邮 编 257061) 印 刷 者 : 石 油 大 学 印 刷 厂 发 行 者 : 石 油 大 学 出 版 社 ( 电 话 0546-8392062) 开 本 :787 1092 1/16 印 张 :21.25 字 数 :544 千 字 版 次 :2003 年 8 月 第 1 版 2003 年 8 月 第 1 次 印 刷 定 价 :26.80 元 版 权 专 有 侵 权 必 究 举 报 电 话 :0546-8392062

前 言 最 早 的 BASIC 语 言 是 面 向 广 大 计 算 机 爱 好 者 的 程 序 语 言, 由 于 易 学 易 用, 自 1964 年 问 世 以 来, 深 受 初 学 者 的 厚 爱 1990 年 美 国 Microsoft 公 司 推 出 了 Visual Basic 1.0 版, 全 新 的 界 面, 强 大 的 功 能, 彻 底 改 变 了 人 们 对 Basic 语 言 的 看 法, 进 而 成 为 程 序 设 计, 甚 至 大 型 软 件 开 发 的 主 要 工 具 Visual Basic 是 在 原 来 的 BASIC 语 言 基 础 上 研 制 而 成 的, 保 持 了 BASIC 语 言 简 单 易 学 易 用 的 特 点, 同 时 增 加 了 结 构 化 可 视 化 程 序 设 计 语 言 的 功 能, 具 备 了 面 向 对 象 程 序 设 计 语 言 的 特 征 Visual Basic 语 言 功 能 强 大, 例 如, 采 用 可 视 化 的 界 面 设 计 技 术 面 向 对 象 的 程 序 设 计 方 法 事 件 驱 动 的 编 程 机 制 支 持 快 速 开 发 (RAD) 支 持 动 态 数 据 交 换 (DDE) 技 术 和 对 象 的 连 接 与 嵌 入 (OLE) 技 术 支 持 数 据 库 的 快 速 访 问 等 等 2001 年,Microsoft 推 出 了 Visual Basic.NET, 将 Visual Basic 语 言 提 升 到 了 全 新 的 高 度 作 为 微 软.NET 策 略 的 主 要 工 具 和 编 程 语 言,VB.NET 已 经 可 以 胜 任 任 何 规 模 任 何 种 类 的 软 件 开 发, 特 别 是 Windows 窗 体 应 用 程 序 XML Web 服 务 程 序 和 嵌 入 式 Windows 应 用 程 序 等 为 了 帮 助 读 者 学 习 掌 握 Visual Basic 语 言, 把 握 计 算 机 程 序 设 计 技 术 的 最 新 进 展, 我 们 编 写 了 这 本 教 材 本 教 材 面 向 高 校 非 计 算 机 专 业 学 生, 侧 重 基 础 知 识 和 基 本 能 力, 适 合 作 为 程 序 设 计 语 言 入 门 教 材 使 用 本 书 分 为 16 章, 第 1 章 是 对 程 序 设 计 技 术 的 概 述, 第 2 至 4 章 简 单 介 绍 Visual Basic 程 序 设 计 方 法, 第 5 至 9 章 是 本 书 的 重 点, 包 括 程 序 的 三 个 基 本 结 构 数 组 和 过 程 的 概 念 及 使 用 等, 第 10 至 14 章 围 绕 程 序 的 界 面 设 计 进 行 学 习, 第 15 章 学 习 文 件 处 理 方 法, 第 16 章 是 关 于 错 误 处 理 技 术 的 高 级 课 题 在 本 书 的 附 录 中, 还 向 读 者 简 要 介 绍 了 Visual Basic.NET, 为 读 者 以 后 的 学 习 抛 砖 引 玉 本 书 由 魏 东 平 副 教 授 任 主 编, 编 写 了 第 10 至 16 章 和 附 录, 并 负 责 最 后 的 校 对 修 改 和 定 稿, 郑 立 垠 副 教 授 编 写 了 第 1 至 第 5 章, 梁 玉 环 讲 师 编 写 了 第 6 至 9 章 付 艳 芬 副 教 授 和 郑 立 垠 副 教 授 对 全 书 进 行 了 校 对 由 于 时 间 仓 促, 加 之 作 者 水 平 有 限, 难 免 存 在 不 足 之 处, 恳 请 读 者 批 评 指 正 编 者 2003 年 5 月

目 录 第 1 章 概 述...1 1.1 程 序 设 计 语 言 的 发 展...1 1.1.1 程 序 程 序 设 计 程 序 设 计 语 言 的 概 念...1 1.1.2 程 序 设 计 语 言 的 发 展...1 1.1.3 源 程 序 在 计 算 机 上 的 执 行 过 程...2 1.2 程 序 设 计 方 法...3 1.2.1 结 构 化 程 序 设 计...3 1.2.2 面 向 对 象 程 序 设 计...3 1.3 算 法...4 1.3.1 算 法 的 主 要 特 征...4 1.3.2 算 法 设 计 的 要 求...5 1.3.3 算 法 的 表 示...5 习 题...7 第 2 章 Visual Basic 程 序 开 发 环 境...8 2.1 Visual Basic 语 言 简 介...8 2.1.1 Visual Basic 语 言 发 展 简 介...8 2.1.2 Visual Basic 语 言 的 特 点...8 2.1.3 Visual Basic 语 言 的 版 本...9 2.2 Visual Basic 6.0 的 安 装 和 启 动...9 2.2.1 Visual Basic 6.0 的 运 行 环 境...9 2.2.2 Visual Basic 6.0 的 安 装...10 2.2.3 Visual Basic 6.0 的 启 动 和 退 出...12 2.3 最 简 单 的 VB 程 序...13 2.4 Visual Basic 集 成 开 发 环 境...18 2.4.1 主 窗 口...18 2.4.2 窗 体 窗 口...19 2.4.3 工 程 资 源 管 理 器 窗 口...19 2.4.4 属 性 窗 口...20 2.4.5 代 码 窗 口...20 2.4.6 工 具 箱 窗 口...21 2.4.7 窗 体 布 局 窗 口...21 2.4.8 对 象 浏 览 器 窗 口...21

ii Visual Basic 程 序 设 计 教 程 2.5 创 建 一 个 VB 应 用 程 序 的 方 法 和 步 骤...22 2.5.1 创 建 应 用 程 序 界 面...22 2.5.2 设 置 界 面 上 各 个 对 象 的 属 性...22 2.5.3 编 写 对 象 相 应 的 程 序 代 码...22 2.5.4 保 存 工 程...22 2.5.5 运 行 和 调 试 程 序...22 2.5.6 生 成 可 执 行 程 序...22 习 题...22 第 3 章 可 视 化 程 序 设 计 初 步...24 3.1 VB 程 序 设 计 中 的 几 个 基 本 概 念...24 3.1.1 对 象...24 3.1.2 对 象 的 属 性...24 3.1.3 对 象 的 事 件...25 3.1.4 对 象 的 方 法...25 3.2 窗 体...25 3.2.1 窗 体 的 结 构...26 3.2.2 窗 体 的 属 性...26 3.2.3 窗 体 的 事 件...27 3.3 常 用 控 件...31 3.3.1 命 令 按 钮...31 3.3.2 标 签 控 件...34 3.3.3 文 本 框 控 件...36 3.4 对 象 的 焦 点...39 3.4.1 焦 点 的 基 本 概 念...39 3.4.2 对 象 的 GotFocus 事 件 与 LostFocus 事 件...39 3.4.3 设 置 焦 点...40 3.5 事 件 驱 动 程 序 的 工 作 方 式...43 3.5.1 事 件 驱 动 简 介...43 3.5.2 事 件 驱 动 程 序 的 工 作 方 式...43 习 题...43 第 4 章 VB 数 据 类 型 运 算 符 和 表 达 式...45 4.1 数 据 类 型...45 4.1.1 基 本 数 据 类 型...45 4.1.2 自 定 义 数 据 类 型...46 4.2 常 量 和 变 量...47 4.2.1 常 量...47 4.2.2 变 量...49 4.3 运 算 符 和 表 达 式...55 4.3.1 算 术 运 算 符 和 算 术 表 达 式...55

目 录 iii 4.3.2 连 接 运 算 符 和 字 符 串 表 达 式...56 4.3.3 关 系 运 算 符 和 关 系 表 达 式...57 4.3.4 逻 辑 运 算 符 和 逻 辑 表 达 式...57 4.3.5 日 期 型 表 达 式...59 4.3.6 各 种 运 算 符 的 优 先 级 比 较...59 4.4 常 用 内 部 函 数...60 4.4.1 数 学 函 数...60 4.4.2 数 据 类 型 转 换 函 数...62 4.4.3 字 符 处 理 函 数...62 4.4.4 日 期 时 间 函 数...65 习 题...66 第 5 章 顺 序 结 构 程 序 设 计...68 5.1 语 句...68 5.1.1 赋 值 语 句...68 5.1.2 注 释 暂 停 与 程 序 结 束 语 句...70 5.2 数 据 输 出...72 5.2.1 Print 方 法...72 5.2.2 与 Print 方 法 有 关 的 标 准 函 数...73 5.2.3 其 他 方 法 和 属 性...75 5.3 输 出 数 据 的 字 体 控 制...79 5.3.1 字 体 类 型 和 大 小...79 5.3.2 其 他 属 性...81 5.4 InputBox 函 数 和 MsgBox 函 数...82 5.4.1 InputBox 函 数...82 5.4.2 MsgBox 函 数...84 5.5 应 用 举 例...86 习 题...89 第 6 章 选 择 结 构 程 序 设 计...91 6.1 单 行 格 式 条 件 语 句...91 6.2 块 结 构 条 件 语 句...95 6.3 多 分 支 选 择 结 构 语 句...99 6.4 选 择 结 构 的 嵌 套...103 6.5 IIf 函 数...108 习 题...109 第 7 章 循 环 结 构 程 序 设 计...110 7.1 While 循 环 结 构...110 7.2 Do 循 环 结 构...113 7.3 For 循 环 结 构...120 7.4 GoTo 型 循 环...126

iv Visual Basic 程 序 设 计 教 程 7.4.1 GoTo 语 句...126 7.4.2 On GoTo 语 句...127 7.5 多 重 循 环...128 习 题...130 第 8 章 数 组...132 8.1 数 组 的 概 念...132 8.2 数 组 的 定 义...132 8.2.1 静 态 数 组...134 8.2.2 动 态 数 组...135 8.2.3 Erase 语 句...137 8.3 数 组 的 基 本 操 作...138 8.3.1 数 组 元 素 的 引 用...138 8.3.2 数 组 元 素 的 输 入...138 8.3.3 数 组 元 素 的 输 出...140 8.3.4 数 组 元 素 的 复 制...142 8.3.5 数 组 的 初 始 化...143 8.4 For Each... Next 语 句...145 8.5 控 件 数 组...147 8.5.1 控 件 数 组 的 概 念...147 8.5.2 建 立 控 件 数 组...147 8.6 数 组 的 应 用 举 例...149 习 题...159 第 9 章 过 程...161 9.1 Sub 过 程...161 9.1.1 事 件 过 程 与 通 用 过 程...161 9.1.2 建 立 Sub 过 程...163 9.1.3 调 用 Sub 过 程...165 9.2 Function 过 程...167 9.2.1 Function 过 程 的 定 义...167 9.2.2 调 用 Function 过 程...168 9.3 过 程 中 的 参 数 传 递...170 9.3.1 形 式 参 数 与 实 际 参 数...170 9.3.2 实 际 参 数 与 形 式 参 数 的 对 应 关 系...171 9.3.3 按 值 传 递 与 按 地 址 传 递...172 9.3.4 数 组 参 数 的 传 递...175 9.4 可 选 参 数 与 可 变 参 数...178 9.5 对 象 参 数...180 9.5.1 窗 体 参 数...181 9.5.2 控 件 参 数...183

目 录 v 9.6 递 归 过 程...184 9.7 变 量 与 过 程 的 作 用 范 围...188 9.7.1 变 量 的 作 用 范 围...188 9.7.2 过 程 的 作 用 范 围...192 习 题...193 第 10 章 Visual Basic 的 常 用 控 件...194 10.1 概 述...194 10.2 图 形 控 件...195 10.2.1 直 线 (Line)...195 10.2.2 形 状 (Shape)...196 10.2.3 图 片 框 (PictureBox)...198 10.2.4 图 像 框 (Image)...199 10.3 框 架 和 选 择 控 件...200 10.3.1 框 架 (Frame)...200 10.3.2 复 选 框 (CheckBox) 和 单 选 按 钮 (OptionButton)...200 10.3.3 列 表 框 (ListBox)...202 10.3.4 组 合 框 (ComboBox)...206 10.4 滚 动 条 控 件...208 10.5 计 时 器 控 件...211 10.6 文 件 系 统 控 件...212 10.6.1 驱 动 器 列 表 框 (DriverListBox)...212 10.6.2 目 录 列 表 框 (DirListBox)...212 10.6.3 文 件 列 表 框 (FileListBox)...213 10.7 其 他 控 件...215 10.7.1 OLE 控 件...215 10.7.2 ActiveX 控 件...216 习 题...217 第 11 章 多 重 窗 体 程 序 设 计...219 11.1 概 述...219 11.2 与 窗 体 有 关 的 语 句 和 方 法...219 11.2.1 窗 体 的 加 载 和 卸 载...220 11.2.2 窗 体 的 常 用 方 法...220 11.3 多 重 窗 体 程 序 设 计 方 法...222 11.4 MDI 界 面 设 计...225 11.5 标 准 模 块 与 Sub Main 过 程...226 11.6 闲 置 循 环 与 DoEvents 语 句...228 习 题...230 第 12 章 菜 单 设 计...231 12.1 与 菜 单 有 关 的 概 念...231

vi Visual Basic 程 序 设 计 教 程 12.1.1 下 拉 式 菜 单...231 12.1.2 弹 出 式 菜 单...232 12.2 菜 单 编 辑 器...232 12.2.1 菜 单 编 辑 器 的 启 动...232 12.2.2 菜 单 编 辑 器 的 使 用...233 12.3 下 拉 式 菜 单 设 计...234 12.3.1 下 拉 式 菜 单 的 设 计 和 编 程...234 12.3.2 菜 单 项 属 性 的 动 态 设 置...237 12.3.3 菜 单 项 的 动 态 增 加 和 删 除...239 12.4 弹 出 式 菜 单 设 计...241 12.5 MDI 界 面 程 序 菜 单 设 计...243 12.6 工 具 栏 设 计...244 习 题...246 第 13 章 对 话 框 设 计...247 13.1 概 述...247 13.2 预 定 义 对 话 框...247 13.2.1 InputBox 函 数...248 13.2.2 MsgBox 函 数...248 13.3 自 定 义 对 话 框...248 13.3.1 对 话 框 窗 体 的 属 性...249 13.3.2 对 话 框 窗 体 的 控 件...249 13.3.3 对 话 框 窗 体 的 显 示...249 13.3.4 应 用 举 例...250 13.4 通 用 对 话 框...251 13.4.1 通 用 对 话 框 控 件...251 13.4.2 文 件 对 话 框...253 13.4.3 颜 色 对 话 框...258 13.4.4 字 体 对 话 框...259 13.4.5 打 印 对 话 框...261 习 题...263 第 14 章 键 盘 与 鼠 标...264 14.1 概 述...264 14.2 键 盘 事 件...264 14.2.1 KeyPress 事 件...264 14.2.2 KeyDown 事 件 和 KeyUp 事 件...266 14.3 鼠 标 事 件...270 14.3.1 鼠 标 事 件...270 14.3.2 鼠 标 指 针...273 14.4 对 象 拖 放...275

目 录 vii 14.4.1 控 件 拖 放...275 14.4.2 OLE 拖 放...278 习 题...278 第 15 章 文 件...279 15.1 文 件 概 述...279 15.2 文 件 的 打 开 与 关 闭...280 15.2.1 顺 序 文 件 的 打 开...280 15.2.2 随 机 文 件 的 打 开...281 15.2.3 二 进 制 文 件 的 打 开...282 15.2.4 文 件 的 关 闭...282 15.3 文 件 指 针...282 15.3.1 文 件 指 针 的 概 念...282 15.3.2 文 件 指 针 的 操 作...282 15.4 顺 序 文 件 的 读 写...283 15.4.1 顺 序 文 件 的 写 操 作...283 15.4.2 顺 序 文 件 的 读 操 作...286 15.5 随 机 文 件 的 读 写...287 15.5.1 随 机 文 件 的 读 写 操 作...287 15.5.2 随 机 文 件 的 增 删 改...290 15.5.3 二 进 制 文 件 的 读 写...293 15.6 文 件 操 作...294 15.7 FSO 对 象 模 型...296 15.7.1 FSO 对 象...296 15.7.2 FSO 模 型 编 程...297 15.7.3 文 件 操 作...299 习 题...301 第 16 章 程 序 调 试 与 错 误 处 理...302 16.1 错 误 类 型...302 16.1.1 编 译 错 误...302 16.1.2 逻 辑 错 误...304 16.1.3 运 行 时 错 误...305 16.2 程 序 调 试 工 具...305 16.2.1 VB 程 序 调 试 工 具...305 16.2.2 中 断 模 式...306 16.2.3 控 制 程 序 的 运 行...307 16.2.4 调 试 窗 口...307 16.3 错 误 处 理 程 序...309 16.3.1 Err 对 象...309 16.3.2 错 误 处 理 程 序...310

viii Visual Basic 程 序 设 计 教 程 16.3.3 集 中 化 的 错 误 处 理...312 16.3.4 调 试 程 序 时 的 错 误 处 理...313 附 录 A 发 布 VB 应 用 程 序...314 A.1 打 包 和 展 开 向 导...314 A.2 安 装 应 用 程 序...319 附 录 B 从 VB 6.0 到 VB.NET...320 B.1.NET 框 架...320 B.2 VB.NET 的 新 特 点...321 B.3 VB.NET 的 语 言 改 进...322 B.4 VB.NET 程 序 设 计...325

第 1 章 概 述 1.1 程 序 设 计 语 言 的 发 展 1.1.1 程 序 程 序 设 计 程 序 设 计 语 言 的 概 念 计 算 机 作 为 信 息 处 理 和 存 储 的 工 具 已 深 入 到 人 类 生 活 的 各 个 领 域 要 学 会 使 用 计 算 机, 使 计 算 机 按 人 的 意 图 工 作, 能 够 接 受 人 向 它 发 出 的 各 种 命 令 和 信 息, 就 必 须 学 会 使 用 计 算 机 的 程 序 设 计 语 言, 把 待 解 决 的 问 题, 按 处 理 步 骤 写 成 一 条 条 计 算 机 能 够 识 别 和 执 行 的 语 句 所 有 语 句 的 集 合 称 之 为 程 序 程 序 员 设 计 编 写 程 序 的 过 程 称 之 为 程 序 设 计 用 来 编 写 程 序 的 语 言 称 之 为 程 序 设 计 语 言 1.1.2 程 序 设 计 语 言 的 发 展 编 写 计 算 机 程 序 所 用 的 语 言 是 人 与 计 算 机 之 间 交 换 信 息 的 工 具, 一 般 可 分 为 机 器 语 言 汇 编 语 言 和 高 级 语 言 1. 机 器 语 言 机 器 语 言 是 计 算 机 系 统 所 能 识 别 的, 不 需 要 翻 译 直 接 供 机 器 使 用 的 程 序 设 计 语 言 由 于 机 器 语 言 是 二 进 制 代 码, 人 们 编 写 或 阅 读 程 序 都 十 分 困 难, 又 容 易 出 错, 并 且 不 同 机 器 的 指 令 系 统 也 不 同, 很 难 进 行 交 流 ( 在 一 种 机 器 上 调 试 通 过 的 程 序 不 能 到 另 外 一 种 机 器 上 运 行 ) 机 器 语 言 程 序 虽 然 其 执 行 效 率 很 高, 但 花 费 在 设 计 程 序 和 调 试 程 序 上 的 时 间 太 多, 整 个 解 决 问 题 的 效 率 就 降 低 了 2. 汇 编 语 言 为 了 解 决 二 进 制 代 码 编 程 带 来 的 困 难, 人 们 采 用 了 助 记 码 和 符 号 地 址 来 代 替 机 器 语 言 中 的 二 进 制 指 令 代 码 和 指 令 地 址, 然 后 通 过 一 个 人 们 预 先 设 计 好 的 叫 做 汇 编 程 序 的 翻 译 程 序 一 对 一 地 翻 译 成 机 器 语 言 程 序, 再 让 计 算 机 执 行 这 种 采 用 助 记 码 和 符 号 地 址 的 语 言 称 为 汇 编 语 言 用 汇 编 语 言 编 写 的 程 序 执 行 效 率 与 机 器 语 言 程 序 一 样 高, 且 其 阅 读 性 提 高 了, 但 由 于 汇 编 指 令 与 机 器 指 令 之 间 是 一 对 一 的, 同 样 不 利 于 交 流, 所 以, 汇 编 语 言 也 是 面 向 机 器 的 语 言 3. 高 级 语 言 从 20 世 纪 50 年 代 中 期 开 始 到 70 年 代 陆 续 产 生 了 许 多 高 级 算 法 语 言, 这 些 高 级 算 法 语 言 中 的 数 据 用 十 进 制 来 表 示, 用 较 为 接 近 自 然 语 言 的 英 文 文 字 来 表 示 语 句 它 们 比 较 接 近 于 人 们 习 惯 用 的 自 然 语 言 和 数 学 表 达 式, 因 此 称 为 高 级 语 言 高 级 语 言 脱 离 了 计 算 机 的 具 体 指 令 系 统, 对 于 非 计 算 机 专 业 人 员 来 说 掌 握 起 来 比 较 容 易, 克 服 了 面 向 机 器 语 言 的 缺 点, 使 得 程 序 易 读 易 维 护 易 交 流 高 级 语 言 发 展 很 快, 已 达 数 百 种 之 多, 常 用 的 高 级 语 言 有 :

2 Visual Basic 程 序 设 计 教 程 (1)FORTRAN 语 言 诞 生 于 20 世 纪 50 年 代 中 期, 是 第 一 个 算 法 语 言, 适 应 于 科 学 和 工 程 计 算 (2)BASIC 语 言 诞 生 于 20 世 纪 60 年 代 中 后 期, 该 语 言 简 单 易 学, 是 一 种 会 话 型 语 言, 适 合 初 学 者 学 习 至 今 BASIC 语 言 已 有 许 多 高 级 版 本, 尤 其 Visual Basic For Windows 是 面 向 对 象 的 程 序 设 计 语 言, 给 非 计 算 机 专 业 的 广 大 用 户 在 Windows 环 境 下 开 发 软 件 带 来 了 极 大 的 方 便 (3)ALGOL 语 言 诞 生 于 20 世 纪 60 年 代 初 期, 是 建 立 在 坚 实 理 论 基 础 上 的 程 序 设 计 语 言,60 年 代 曾 被 认 为 是 最 有 前 途 的 程 序 设 计 语 言, 但 现 在 已 经 很 少 有 人 使 用 了 (4)PASCAL 语 言 诞 生 于 20 世 纪 70 年 代 初, 是 一 种 结 构 化 程 序 设 计 语 言, 适 合 于 教 学 科 学 计 算 数 据 处 理 和 系 统 软 件 开 发 等 目 前 逐 步 被 C 语 言 所 取 代 (5)C 语 言 诞 生 于 20 世 纪 70 年 代 初,80 年 代 开 始 风 靡 全 世 界, 适 应 于 系 统 软 件 数 值 计 算 数 据 处 理 等, 目 前 成 为 高 级 语 言 中 使 用 最 多 的 语 言 之 一 现 在 较 常 用 的 C 语 言 Visual C++ 是 面 向 对 象 的 程 序 设 计 语 言 (6)Java 语 言 诞 生 于 20 世 纪 90 年 代, 是 一 种 新 型 的 跨 平 台 分 布 式 程 序 设 计 语 言, 具 有 简 单 安 全 稳 定 可 移 植 性 强 等 特 性, 将 成 为 未 来 网 络 环 境 上 的 世 界 语 Java 语 言 是 基 于 C++ 的, 其 最 大 特 点 是 一 次 编 写, 处 处 运 行 但 Java 语 言 编 写 的 程 序 要 依 靠 一 个 虚 拟 机 (VM,Virtual Machine) 才 能 运 行 一 般 地, 把 用 高 级 语 言 或 汇 编 语 言 编 写 的 程 序 称 为 源 程 序 1.1.3 源 程 序 在 计 算 机 上 的 执 行 过 程 人 们 用 高 级 语 言 编 写 的 源 程 序 计 算 机 并 不 懂, 像 汇 编 语 言 一 样, 必 须 经 过 一 个 翻 译 程 序 将 高 级 语 言 编 写 的 源 程 序 翻 译 成 计 算 机 能 够 识 别 的 二 进 制 代 码 程 序, 才 能 让 计 算 机 执 行 并 得 到 结 果 这 个 翻 译 程 序 一 般 称 为 语 言 处 理 程 序 语 言 处 理 程 序 将 源 程 序 翻 译 成 二 进 制 代 码 的 方 式 通 常 有 两 种, 一 种 称 为 编 译 方 式, 一 种 称 为 解 释 方 式 1. 编 译 方 式 编 译 方 式 将 源 程 序 全 部 翻 译 成 一 个 功 能 等 价 的 机 器 语 言 程 序 ( 一 般 称 为 目 标 程 序 ), 然 后 经 过 一 个 连 接 程 序 将 用 户 的 目 标 程 序 ( 一 个 或 多 个 ) 与 系 统 配 置 好 的 一 些 通 用 程 序 连 接 装 配 在 一 起, 形 成 一 个 可 执 行 程 序, 最 后 让 计 算 机 执 行 并 得 到 结 果 编 译 方 式 经 编 译 连 接 得 到 的 可 执 行 程 序 可 以 重 复 执 行 无 数 次, 其 效 率 很 高 系 统 程 序 用 户 已 调 试 好 的 程 序, 大 都 采 用 编 译 方 式 处 理, 最 终 得 到 可 执 行 程 序 供 用 户 使 用 2. 解 释 方 式 解 释 方 式 是 通 过 解 释 程 序 逐 句 翻 译 执 行 的, 不 产 生 目 标 代 码 程 序, 每 次 执 行 都 要 重 新 翻 译, 所 以 对 那 些 重 复 执 行 的 程 序 效 率 较 低 但 解 释 方 式 对 于 调 试 程 序 很 方 便 目 前, 大 多 数 常 用 的 高 级 语 言 都 采 用 编 译 方 式, 且 输 入 或 修 改 源 程 序 编 译 连 接 执 行 四 个 过 程 均 在 一 个 集 成 环 境 下, 省 去 了 用 户 不 少 的 麻 烦

第 1 章 概 述 3 1.2 程 序 设 计 方 法 1.2.1 结 构 化 程 序 设 计 结 构 化 程 序 设 计 的 指 导 思 想 是 : 以 良 好 的 结 构 来 保 证 程 序 容 易 阅 读 和 理 解, 而 良 好 结 构 的 实 现 则 是 靠 把 软 件 的 设 计 作 为 一 项 工 程 ( 即 软 件 工 程 ), 严 格 地 按 规 范 来 设 计 虽 然 说 程 序 的 执 行 效 率 是 衡 量 程 序 质 量 的 一 个 重 要 因 素, 但 随 着 计 算 机 硬 件 的 迅 速 发 展 与 计 算 机 的 迅 速 普 及, 执 行 效 率 已 经 不 是 第 一 个 要 考 虑 的 因 素, 而 程 序 的 易 读 性 上 升 到 了 第 一 位 对 于 复 杂 的 问 题, 人 们 往 往 不 可 能 一 开 始 就 了 解 了 问 题 的 全 部 细 节, 也 就 很 难 一 下 子 写 出 既 详 细 又 清 晰 的 算 法, 应 该 考 虑 将 问 题 进 行 分 块, 这 就 是 所 谓 结 构 化 程 序 设 计 的 问 题 1. 自 顶 向 下 逐 步 细 化 是 结 构 化 程 序 设 计 的 方 法 结 构 化 程 序 设 计 由 三 种 基 本 结 构 ( 顺 序 结 构 选 择 结 构 循 环 结 构 ) 组 成, 实 践 证 明, 用 这 三 种 基 本 结 构 的 组 合 可 以 实 现 任 何 复 杂 的 算 法 那 么 怎 样 设 计 结 构 化 的 算 法 呢? 一 般 采 用 一 种 叫 做 自 顶 向 下 逐 步 细 化 的 方 法 自 顶 向 下 逐 步 细 化 ( 逐 步 求 精 ) 的 基 本 思 想 可 以 概 括 为 : 先 从 最 能 反 映 问 题 的 结 构 出 发, 设 计 出 一 个 粗 略 的 算 法, 然 后 对 每 一 步 进 行 细 化 具 体 化, 逐 步 补 充 细 节 ( 开 始 考 虑 不 到 的 ), 直 到 设 计 出 可 在 计 算 机 上 执 行 的 程 序 这 种 方 法 是 一 种 先 全 局 后 局 部 先 整 体 后 细 节 先 抽 象 后 具 体 的 自 顶 向 下 的 设 计 方 法 显 然, 对 于 大 型 的 程 序, 应 该 采 用 这 种 方 法 进 行 算 法 设 计 首 先 根 据 总 体 要 求 划 分 出 若 干 个 相 对 独 立 的 模 块, 每 个 模 块 根 据 它 的 功 能 可 细 化 为 若 干 子 模 块, 每 个 子 模 块 又 可 根 据 其 功 能 细 化 为 更 小 的 子 模 块, 最 后 对 每 个 小 的 子 模 块 写 出 算 法, 这 种 方 法 由 粗 到 细 由 整 体 设 计 到 具 体 设 计, 是 结 构 化 程 序 设 计 所 提 倡 的 方 法 如 果 拿 到 题 目 就 一 个 语 句 一 个 语 句 地 编 写 程 序, 最 后 会 由 于 考 虑 不 周 全 而 出 现 很 多 问 题 但 又 无 从 下 手 检 查 所 以 作 为 一 个 好 的 程 序 员 应 该 学 会 自 顶 向 下 逐 步 细 化 的 结 构 化 程 序 设 计 方 法 2. 结 构 化 程 序 设 计 的 风 格 (1) 程 序 要 简 单 朴 实, 尽 量 让 读 者 一 看 就 明 白 程 序 的 意 图 (2) 程 序 文 档 化 除 了 程 序 结 构 要 清 晰 易 读 外, 还 可 以 在 程 序 中 加 一 些 注 释, 向 读 者 表 明 程 序 的 功 能 设 计 思 想 及 用 法 等 另 外, 对 程 序 中 用 到 的 变 量 命 名 时 要 见 名 知 义 (3) 书 写 规 范 化 书 写 程 序 时 不 要 把 所 有 的 语 句 对 齐 排 列, 而 要 按 照 程 序 的 不 同 层 次 写 成 锯 齿 状 的 逐 渐 缩 进 格 式, 这 样 可 突 出 程 序 的 逻 辑 层 次 结 构, 又 可 方 便 查 错 (4) 书 写 文 档 对 于 简 单 程 序, 这 一 步 可 能 是 多 余 的, 但 对 于 复 杂 的 程 序 它 是 不 可 缺 少 的, 虽 然 程 序 中 有 注 释, 但 毕 竟 篇 幅 有 限, 作 为 一 个 好 的 程 序 员, 一 定 要 把 你 开 发 软 件 时 的 算 法 说 明 结 构 流 程 图 数 据 结 构 的 定 义 使 用 操 作 说 明 等 资 料 整 理 写 成 文 档, 与 程 序 一 起 交 付 用 户 使 用 作 为 一 个 初 学 者, 你 所 编 写 的 程 序 可 能 不 会 太 复 杂, 也 不 用 交 付 别 人 使 用, 但 作 为 一 个 好 的 习 惯 只 能 逐 步 培 养 训 练 才 能 养 成 1.2.2 面 向 对 象 程 序 设 计 结 构 化 程 序 设 计 对 于 确 定 的 问 题 来 说, 无 疑 是 一 种 很 好 的 方 法, 但 对 于 千 变 万 化 的 世 界, 特 别 是 当 今 信 息 化 的 世 界, 一 个 成 为 产 品 的 软 件 很 难 适 应 形 势 的 变 化, 因 为 在 程 序 的 设 计 阶

4 Visual Basic 程 序 设 计 教 程 段 问 题 是 确 定 的, 其 数 据 结 构 数 据 模 型 也 可 以 确 定, 所 以 设 计 出 的 程 序 使 用 操 作 没 有 问 题, 但 当 表 示 问 题 的 数 据 结 构 发 生 变 化 时, 程 序 就 可 能 会 出 现 问 题, 而 维 护 起 来 相 当 困 难, 原 因 就 是 当 初 的 设 计 是 面 向 数 据 进 行 自 顶 向 下 设 计 的, 要 修 改 就 需 要 全 部 修 改 本 来 客 观 世 界 是 由 许 许 多 多 各 种 各 样 的 对 象 组 成 的, 每 个 对 象 都 有 各 自 的 内 部 状 态 ( 属 性 ) 和 运 动 规 律 ( 行 为 方 式 ), 不 同 对 象 的 相 互 作 用 和 联 系 就 构 成 了 各 种 各 样 不 同 的 系 统, 构 成 了 我 们 所 面 对 的 客 观 世 界 如 果 我 们 按 照 客 观 世 界 对 象 的 特 点 进 行 程 序 设 计, 就 会 适 应 形 势 的 发 展, 这 就 是 自 20 世 纪 80 年 代 开 始 流 行 现 已 广 泛 应 用 的 面 向 对 象 的 程 序 设 计 方 法 面 向 对 象 的 程 序 设 计 方 法 吸 取 了 结 构 化 程 序 设 计 的 基 本 思 想 和 主 要 优 点, 将 数 据 与 对 数 据 的 操 作 放 在 一 起 作 为 一 个 相 互 依 存 不 可 分 割 的 整 体 来 处 理 这 个 整 体 称 为 对 象 对 象 的 内 部 状 态 ( 属 性 ) 用 数 据 表 示, 运 动 规 律 用 所 谓 的 方 法 ( 也 称 成 员 函 数 ) 表 示 对 象 是 一 个 整 体, 所 以 我 们 说 把 数 据 隐 藏 在 这 个 整 体 中 了 对 象 之 间 的 相 互 作 用 通 过 所 谓 的 消 息 与 对 象 的 对 外 接 口 ( 成 员 函 数 的 调 用 形 式 ) 实 现 这 个 系 统 就 是 通 过 不 断 地 向 对 象 发 送 消 息 而 使 对 象 从 初 始 状 态 到 达 终 止 状 态, 从 而 实 现 了 问 题 的 求 解 如 果 问 题 的 数 据 结 构 发 生 了 变 化, 只 要 描 述 问 题 的 对 象 的 对 外 接 口 不 变, 所 有 涉 及 这 些 数 据 结 构 的 地 方 都 不 需 要 修 改, 而 只 需 修 改 对 象 中 的 方 法 就 行 了 对 象 有 各 种 各 样 的, 但 总 有 相 似 的 比 如 一 匹 白 马 和 一 匹 黑 马 是 两 个 对 象, 但 它 们 都 具 有 马 的 特 性, 只 是 颜 色 有 点 差 异 而 已 我 们 将 对 象 进 行 抽 象 划 分 便 得 到 了 类 类 描 述 了 属 于 该 类 型 的 所 有 对 象 的 性 质, 包 括 外 部 特 征 和 内 部 实 现, 实 际 上 是 抽 象 数 据 类 型 的 具 体 实 现 反 之, 对 象 是 类 的 具 体 实 例 面 向 对 象 的 程 序 设 计 方 法 是 一 个 新 的 程 序 设 计 方 法, 这 个 方 法 具 有 其 他 方 法 所 不 具 备 的 特 点, 富 有 生 命 力 如 建 立 在 对 象 类 及 其 继 承 性 基 础 上 的 重 用 能 力 可 以 应 付 复 杂 大 型 软 件 开 发 便 于 扩 展 和 维 护, 抽 象 程 度 高, 因 而 具 有 较 高 的 生 产 率 这 种 新 方 法 在 得 到 广 泛 理 解 和 应 用 之 后, 必 将 会 有 力 地 推 动 软 件 开 发 的 新 发 展 1.3 算 法 1.3.1 算 法 的 主 要 特 征 算 法 (Algorithm) 是 对 特 定 问 题 求 解 步 骤 的 一 种 描 述, 它 是 指 令 的 有 限 序 列, 其 中 每 一 条 指 令 表 示 一 个 或 多 个 操 作 一 个 算 法 一 般 具 有 如 下 五 个 主 要 特 征 : (1) 有 穷 性 一 个 算 法 必 须 总 是 ( 对 任 何 合 法 的 输 入 值 ) 在 执 行 有 穷 步 之 后 结 束, 且 每 一 步 都 在 有 穷 时 间 内 完 成 (2) 确 定 性 算 法 中 每 一 条 指 令 必 须 有 确 切 的 含 义, 不 允 许 有 模 棱 两 可 的 解 释, 人 们 理 解 时 不 会 产 生 二 义 性 并 且, 在 任 何 条 件 下, 算 法 只 有 惟 一 的 一 条 执 行 路 径, 即 对 于 相 同 的 输 入 只 能 得 出 相 同 的 输 出 (3) 有 效 性 一 个 算 法 能 有 效 地 完 成 指 定 的 任 务, 就 要 求 算 法 中 描 述 的 操 作 都 可 以 通 过 已 经 实 现 的 基 本 运 算 执 行 有 限 次 来 实 现 (4) 输 入 一 个 算 法 有 零 个 或 多 个 输 入, 这 些 输 入 取 自 于 某 个 特 定 的 对 象 的 集 合 (5) 输 出 一 个 算 法 有 一 个 或 多 个 输 出, 这 些 输 出 是 同 输 入 有 着 某 些 特 定 关 系 的 量

第 1 章 概 述 5 1.3.2 算 法 设 计 的 要 求 通 常 设 计 一 个 好 的 算 法 应 考 虑 达 到 以 下 目 标 : (1) 正 确 性 设 计 或 选 择 的 算 法 能 正 确 地 反 映 具 体 问 题 的 要 求 一 般 来 说, 衡 量 一 个 程 序 是 否 合 格 的 标 准 是 程 序 对 于 精 心 选 择 的 典 型 苛 刻 而 带 有 刁 难 性 的 几 组 输 入 数 据 能 够 得 出 满 足 具 体 问 题 规 格 说 明 的 结 果 (2) 可 读 性 可 读 性 好 有 助 于 读 者 理 解 算 法, 而 晦 涩 难 懂 的 程 序 容 易 隐 藏 较 多 错 误, 给 调 试 和 修 改 程 序 带 来 很 大 的 困 难 (3) 健 壮 性 当 输 入 数 据 非 法 时, 算 法 也 能 适 当 地 做 出 反 应 或 进 行 处 理, 而 不 会 产 生 莫 名 其 妙 的 结 果 (4) 效 率 与 低 存 储 量 需 求 一 般 来 说, 效 率 指 的 是 算 法 执 行 时 间 对 于 同 一 个 问 题 如 果 有 多 个 算 法 可 以 解 决, 执 行 时 间 短 的 算 法 效 率 高 存 储 量 需 求 指 算 法 执 行 过 程 中 所 需 要 的 最 大 存 储 空 间 效 率 与 低 存 储 量 需 求 这 两 者 都 与 问 题 的 规 模 有 关 1.3.3 算 法 的 表 示 把 算 法 用 文 字 或 图 形 方 式 表 示 出 来, 就 是 算 法 的 描 述 下 面 介 绍 几 种 常 见 的 算 法 描 述 方 法 1. 自 然 语 言 采 用 自 然 语 言 描 述 算 法, 通 俗 易 懂, 易 于 人 们 接 受 和 理 解, 但 有 它 的 缺 点 : (1) 不 太 严 格 且 繁 琐 冗 长 ; (2) 用 自 然 语 言 描 述 顺 序 执 行 的 步 骤 比 较 好 懂, 但 如 果 算 法 复 杂 且 包 含 很 多 判 断 转 移 时, 用 自 然 语 言 描 述 就 不 是 那 么 直 观 清 晰 了 2. 算 法 框 图 作 为 算 法 的 表 达 工 具, 在 算 法 设 计 阶 段 人 们 一 般 采 用 图 示 的 方 法 图 示 法 简 单 直 观, 特 别 有 利 于 初 学 者 算 法 的 图 示 法 又 称 为 算 法 框 图 有 两 种 形 式 的 算 法 框 图 : (1) 传 统 的 程 序 流 程 图 : 传 统 的 程 序 流 程 图 通 常 采 用 一 些 几 何 图 形 来 代 表 各 种 类 型 的 操 作, 并 在 图 形 内 标 明 文 字 或 符 号, 表 示 操 作 的 内 容, 用 箭 头 来 表 示 操 作 的 顺 序 (2) 结 构 框 图 N-S 流 程 图 : 传 统 的 流 程 图 是 早 期 的 工 具, 采 用 这 种 方 法 描 述 算 法 比 较 直 观, 但 由 于 流 程 图 允 许 箭 头 随 意 转 移, 对 表 示 算 法 的 层 次 结 构 非 常 不 利, 且 流 程 图 占 的 篇 幅 较 大, 作 图 工 作 量 也 很 大 针 对 这 些 情 况,1973 年 美 国 的 计 算 机 科 学 家 I.Nassi 和 B.Shneiderman 提 出 了 所 谓 的 结 构 化 程 序 设 计 流 程 图, 因 为 他 们 二 人 的 名 字 是 以 N 和 S 开 头 的, 所 以 也 称 为 N-S 图 这 种 图 符 合 结 构 化 程 序 设 计 的 思 想 N-S 图 去 掉 了 传 统 流 程 图 中 引 起 麻 烦 的 箭 头, 全 部 算 法 写 在 一 个 大 的 矩 形 框 内 N-S 图 规 定 了 一 些 图 形 元 素, 用 来 表 示 三 种 基 本 结 构 ( 顺 序 结 构 选 择 结 构 循 环 结 构 ) 一 个 算 法 可 由 若 干 个 代 表 基 本 结 构 的 图 形 元 素 像 搭 积 木 一 样 构 造 而 成 1 顺 序 结 构 : 顺 序 结 构 是 一 系 列 顺 序 执 行 的 运 算 和 处 理, 顺 序 结 构 的 传 统 流 程 图 用 图 1.1(a) 表 示,

6 Visual Basic 程 序 设 计 教 程 而 N-S 图 用 图 1.1(b) 表 示 其 中,A 和 B 分 别 代 表 一 个 基 本 的 操 作 (a) (b) 图 1.1 顺 序 结 构 2 选 择 结 构 ( 判 断 结 构 ): 选 择 结 构 通 常 是 根 据 一 个 条 件 P 是 否 成 立 来 选 择 下 一 步 应 该 执 行 哪 一 种 处 理 图 1.2(a) (b) 分 别 表 示 选 择 结 构 的 程 序 流 程 图 和 N-S 图 其 中 T 表 示 条 件 成 立,F 表 示 条 件 不 成 立 T P F T P F A B A B (a) 流 程 图 图 1.2 选 择 结 构 (b)n-s 图 3 循 环 结 构 ( 重 复 结 构 ): 循 环 结 构 根 据 条 件 P 是 否 成 立 来 判 断 是 否 重 复 执 行 某 处 理 框 A 通 常 有 两 种 结 构 形 式, 一 种 是 先 判 后 做, 一 种 是 先 做 后 判 先 判 后 做 称 为 当 型 循 环 : 表 示 当 条 件 P 成 立 时 就 执 行 框 A, 然 后 返 回 再 判 断 P 是 否 成 立, 若 成 立 再 执 行 框 A, 重 复 下 去, 直 到 条 件 P 不 成 立 其 流 程 图 和 N-S 图 如 图 1.3(a) (b) 所 示 P T F 当 P A A (a) 流 程 图 图 1.3 当 型 循 环 结 构 (b)n-s 图 先 做 后 判 称 为 直 到 型 循 环 : 表 示 先 执 行 框 A, 再 判 断 条 件 P 是 否 满 足, 不 满 足 则 重

第 1 章 概 述 7 复 执 行 框 A, 直 到 条 件 成 立 其 流 程 图 和 N-S 图 如 图 1.4(a) (b) 所 示 A A F P T 直 到 P (a) 流 程 图 图 1.4 直 到 型 循 环 结 构 (b)n-s 图 习 题 1. 程 序 设 计 语 言 的 发 展 经 历 了 哪 几 个 阶 段? 各 有 什 么 优 缺 点? 2. 用 高 级 语 言 编 写 的 源 程 序 要 让 计 算 机 执 行, 需 经 过 哪 几 步 处 理? 3. 什 么 叫 结 构 化 程 序 设 计 方 法? 结 构 化 程 序 设 计 方 法 由 哪 三 种 基 本 结 构 组 成? 其 特 点 如 何? 4. 面 向 对 象 程 序 设 计 方 法 的 主 要 特 征 是 什 么? 5. 什 么 是 算 法? 描 述 算 法 的 方 法 有 哪 几 种?

第 2 章 Visual Basic 程 序 开 发 环 境 2.1 Visual Basic 语 言 简 介 2.1.1 Visual Basic 语 言 发 展 简 介 Visual 意 为 可 视 化 的, 指 的 是 一 种 开 发 图 形 用 户 界 面 (GUI) 的 方 法, 所 以 Visual Basic 是 基 于 Basic 的 可 视 化 的 程 序 设 计 语 言 Basic 指 的 是 BASIC(Beginners All-Purpose Symbolic Instruction Code, 初 学 者 通 用 符 号 指 令 代 码 ) 语 言, 一 种 在 计 算 技 术 发 展 历 史 上 应 用 得 最 为 广 泛 的 语 言 Visual Basic 在 原 有 BASIC 语 言 的 基 础 上 进 一 步 发 展, 包 含 了 数 百 条 语 句 函 数 及 关 键 词, 其 中 很 多 和 Windows GUI 有 直 接 关 系 在 Visual Basic 中, 一 方 面 继 承 了 BASIC 所 具 有 的 程 序 设 计 语 言 简 单 易 用 的 特 点, 另 一 方 面 在 其 编 程 系 统 中 采 用 了 面 向 对 象 事 件 驱 动 的 编 程 机 制, 用 一 种 巧 妙 的 方 法 把 Windows 的 编 程 复 杂 性 封 装 起 来, 提 供 了 一 种 所 见 即 所 得 的 可 视 化 程 序 设 计 方 法 因 此,Visual Basic 被 认 为 是 大 多 数 电 脑 初 学 者 的 首 选 入 门 编 程 语 言 2.1.2 Visual Basic 语 言 的 特 点 1. 具 有 面 向 对 象 的 可 视 化 设 计 工 具 在 VB 中, 应 用 面 向 对 象 的 程 序 设 计 方 法 (OOP), 把 程 序 和 数 据 封 装 起 来 视 为 一 个 对 象, 每 个 对 象 都 是 可 视 的 程 序 员 在 设 计 时 只 需 用 现 有 工 具 根 据 界 面 设 计 要 求, 直 接 在 屏 幕 上 画 出 窗 口 菜 单 按 钮 滚 动 条 等 不 同 类 型 的 对 象, 并 为 每 个 对 象 设 置 属 性 程 序 员 的 编 程 工 作 仅 限 于 编 写 相 关 对 象 要 完 成 的 功 能 程 序, 因 而 程 序 设 计 的 效 率 可 大 大 提 高 2. 事 件 驱 动 的 编 程 机 制 事 件 驱 动 是 非 常 适 合 图 形 用 户 界 面 的 编 程 方 式 在 图 形 用 户 界 面 的 应 用 程 序 中, 是 由 用 户 的 动 作 即 事 件 掌 握 着 程 序 运 行 的 流 向, 每 个 事 件 都 能 驱 动 一 段 程 序 的 运 行 程 序 员 只 需 要 编 写 响 应 用 户 动 作 的 代 码, 而 各 个 动 作 之 间 不 一 定 有 联 系 3. 提 供 了 易 学 易 用 的 应 用 程 序 集 成 开 发 环 境 在 VB 集 成 开 发 环 境 中, 用 户 可 设 计 界 面 编 写 代 码 调 试 程 序, 直 至 把 应 用 程 序 编 译 成 可 执 行 文 件 在 Windows 中 运 行, 使 用 户 在 友 好 的 开 发 环 境 中 工 作 4. 结 构 化 的 程 序 设 计 语 言 VB 具 有 丰 富 的 数 据 类 型 和 结 构 化 程 序 结 构, 作 为 一 种 程 序 设 计 语 言, 它 还 有 如 下 一 些 特 点 : (1) 强 大 的 数 值 和 字 符 串 处 理 功 能 ; (2) 丰 富 的 图 形 指 令, 可 方 便 地 绘 制 各 种 图 形 ;

第 2 章 Visual Basic 程 序 开 发 环 境 9 (3) 提 供 静 态 和 动 态 数 组, 有 利 于 简 化 内 存 的 管 理 ; (4) 过 程 可 递 归 调 用, 使 程 序 更 为 简 练 ; (5) 支 持 随 机 文 件 和 顺 序 文 件 的 访 问 ; (6) 提 供 了 一 个 可 供 应 用 程 序 调 用 的 包 含 多 种 类 型 的 图 标 库 ; (7) 具 有 完 善 的 运 行 出 错 处 理 5. 支 持 多 种 数 据 库 系 统 的 访 问 利 用 数 据 控 件 可 访 问 的 数 据 库 系 统 有 :Microsoft Access Btrieve DBase Microsoft FoxPro 和 Paradox 等, 也 可 以 访 问 Microsoft Excel Lotus1-2-3 等 多 种 电 子 表 格 6. 支 持 动 态 数 据 交 换 (DDE) 动 态 链 接 库 (DLL) 和 对 象 的 链 接 与 嵌 入 (OLE) 技 术 7. 完 备 的 HELP 联 机 帮 助 功 能 与 Windows 环 境 下 的 软 件 一 样, 在 VB 中, 利 用 帮 助 菜 单 和 F1 功 能 键, 用 户 可 以 随 时 方 便 地 得 到 所 需 要 的 帮 助 信 息 VB 帮 助 窗 口 中 显 示 了 有 关 的 示 例 代 码, 通 过 复 制 粘 贴 操 作 可 获 取 大 量 的 示 例 代 码, 为 用 户 的 学 习 和 使 用 提 供 了 极 大 的 方 便 2.1.3 Visual Basic 语 言 的 版 本 Microsoft 公 司 于 1991 年 推 出 Visual Basic 1.0 版, 获 得 巨 大 成 功, 直 到 1998 年 推 出 6.0 版, 至 今 已 经 历 了 6 个 版 本 随 着 版 本 的 改 进,Visual Basic 已 逐 渐 成 为 简 单 易 学 功 能 强 大 的 编 程 工 具 Visual Basic 6.0 包 括 三 种 版 本, 它 们 分 别 为 学 习 版 专 业 版 和 企 业 版 这 三 种 版 本 是 在 相 同 的 基 础 上 建 立 起 来 的, 以 满 足 不 同 层 次 的 用 户 需 要 学 习 版 :(Learning Edition) 可 使 用 一 组 工 具 来 创 建 功 能 完 备 的 Windows 应 用 程 序, 它 包 括 所 有 的 内 部 控 件 网 格 控 件 及 数 据 绑 定 等 控 件 专 业 版 :(Professional Edition) 在 学 习 版 的 基 础 上 添 加 了 一 些 专 门 的 工 具 和 一 个 报 表 编 制 工 具 它 主 要 针 对 计 算 机 专 业 开 发 人 员 ( 除 了 具 有 学 习 版 的 全 部 功 能 外, 还 包 括 ActiveX 和 Internet 控 件 开 发 工 具 之 类 的 高 级 特 性 ) 企 业 版 :(Enterprise Edition) 包 括 了 用 于 客 户 / 服 务 器 应 用 程 序 的 工 具 ( 除 了 具 有 专 业 版 的 全 部 功 能 外, 还 包 括 了 一 些 特 殊 的 工 具 ) 本 书 使 用 的 是 Visual Basic 6.0 中 文 企 业 版, 但 其 内 容 可 用 于 专 业 版, 所 有 程 序 可 在 专 业 版 中 运 行, 大 多 数 程 序 可 在 学 习 版 中 运 行 2.2 Visual Basic 6.0 的 安 装 和 启 动 2.2.1 Visual Basic 6.0 的 运 行 环 境 (1)CPU: 最 低 配 置 应 不 低 于 486DX, 一 般 应 选 择 奔 腾 133 或 更 高 主 频 的 CPU (2) 内 存 : 最 低 不 能 少 于 16MB 一 般 应 选 用 32MB, 以 便 能 提 高 运 行 速 度 如 果 用 于 图 形 处 理 或 使 用 ActiveX, 则 内 存 最 好 在 32MB 或 64MB 以 上 如 果 要 处 理 三 维 动 画, 则 内 存 配 置 应 大 于 64MB 或 128MB, 并 相 应 增 大 显 存 容 量

10 Visual Basic 程 序 设 计 教 程 (3) 磁 盘 空 间 : 学 习 版 : 典 型 安 装 需 要 48MB, 完 全 安 装 需 要 80MB 专 业 版 : 典 型 安 装 需 要 48MB, 完 全 安 装 需 要 80MB 企 业 版 : 典 型 安 装 需 要 128MB, 完 全 安 装 需 要 147MB MSDN: 若 使 用 VB 帮 助 文 件, 则 必 须 安 装, 至 少 需 要 67MB 另 外, 可 以 根 据 实 际 需 要 安 装 一 些 附 加 控 件 (4) 显 示 设 备 :VGA 或 更 高 分 辨 率 的 显 示 器, 建 议 使 用 Super VGA (5) 读 取 设 备 : 应 配 置 8 倍 速 或 更 高 速 度 的 CD-ROM 驱 动 器 (6) 操 作 系 统 :Windows 9X 或 Windows NT 4.0 以 上 版 本 2.2.2 Visual Basic 6.0 的 安 装 VB 的 安 装 与 安 装 大 多 数 其 他 Windows 应 用 程 序 相 似, 将 带 有 VB 6.0 的 CD 盘 片 放 入 光 驱, 执 行 该 盘 片 中 的 SETUP.EXE, 然 后 按 照 屏 幕 提 示 操 作 即 可 以 下 以 中 文 企 业 版 为 例 介 绍 安 装 过 程 为 了 顺 利 安 装 和 运 行 Visual Basic 6.0 中 文 企 业 版, 要 求 硬 盘 至 少 需 有 200MB 以 上 的 空 闲 空 间 ; 如 果 需 要 安 装 MSDN, 则 可 用 磁 盘 空 间 的 数 量 最 好 在 400MB 以 上 (1) 将 VB 6.0 的 安 装 光 盘 放 入 光 驱, 在 资 源 管 理 器 或 我 的 电 脑 中 执 行 安 装 光 盘 上 的 SETUP.EXE 程 序, 运 行 后 显 示 出 Visual Basic 6.0 中 文 企 业 版 安 装 向 导 对 话 框, 如 图 2.1 所 示 图 2.1 Visual Basic 6.0 中 文 企 业 版 安 装 向 导 对 话 框 (2) 在 图 2.1 所 示 的 对 话 框 中, 单 击 下 一 步 按 钮, 则 打 开 最 终 用 户 许 可 协 议 文 本 框, 选 定 单 选 按 钮 接 受 协 议, 单 击 下 一 步 按 钮 此 时 安 装 程 序 要 求 用 户 输 入 产 品

第 2 章 Visual Basic 程 序 开 发 环 境 11 的 ID 号 用 户 的 姓 名 和 公 司 名 称 输 入 完 上 述 内 容 后 单 击 下 一 步 按 钮, 打 开 选 择 安 装 程 序 对 话 框, 如 图 2.2 所 示 图 2.2 选 择 安 装 程 序 对 话 框 (3) 在 图 2.2 中 选 择 安 装 Visual Basic 6.0 中 文 企 业 版 后, 单 击 下 一 步 按 钮 在 完 成 安 装 路 径 选 择 后, 安 装 程 序 将 打 开 选 择 安 装 类 型 对 话 框, 如 图 2.3 所 示 图 2.3 选 择 安 装 类 型 对 话 框 (4) 在 选 择 安 装 类 型 对 话 框 中, 安 装 程 序 为 用 户 提 供 了 两 个 选 择 : 典 型 安 装 和 自 定 义 安 装 前 者 将 安 装 最 典 型 的 组 件, 安 装 过 程 无 需 用 户 干 预 若 用 户 选 择 了 后 者, 将 打 开 自 定 义 安 装 对 话 框, 如 图 2.4 所 示 在 这 时 用 户 可 以 有 选 择 地 安 装 需 要 的 组 件 (5) 单 击 图 2.4 对 话 框 中 的 继 续 按 钮 后, 安 装 程 序 将 复 制 所 选 文 件 到 硬 盘 中, 复 制 结 束 后 将 重 新 启 动 计 算 机 完 成 VB 6.0 的 安 装

12 Visual Basic 程 序 设 计 教 程 (6) 计 算 机 重 新 启 动 后, 安 装 程 序 将 自 动 打 开 安 装 MSDN 对 话 框, 询 问 用 户 是 否 需 要 安 装 Microsoft Developer Network Library(MSDN) MSDN Library 是 开 发 人 员 的 重 要 参 考 资 料, 包 含 了 容 量 约 1GB 的 编 程 技 术 资 料 信 息, 包 括 示 例 代 码 文 档 技 术 文 章 Microsoft 开 发 人 员 知 识 库 及 开 发 程 序 时 需 要 的 其 他 资 料 MSDN Library 是 Microsoft Visual Studio 6.0 的 套 件 之 一, 由 两 张 光 盘 组 成 注 意 VB 6.0 的 联 机 帮 助 文 档 只 有 在 安 装 了 MSDN 后 方 可 使 用 图 2.4 自 定 义 安 装 对 话 框 VB 6.0 的 安 装 结 束 后, 用 户 可 以 从 开 始 菜 单 中 启 动 它, 也 可 以 根 据 需 要 在 桌 面 上 建 立 VB 6.0 的 快 捷 方 式 2.2.3 Visual Basic 6.0 的 启 动 和 退 出 1. VB 6.0 的 启 动 VB 的 运 行 就 像 其 他 Windows 应 用 程 序 那 样 运 行, 其 运 行 方 法 为 : (1) 双 击 桌 面 上 的 Visual Basic 图 标 (2) 选 择 开 始 程 序 一 旦 运 行 了 VB 6.0 将 会 弹 出 一 个 新 建 工 程 窗 口, 如 图 2.5 所 示 如 果 只 是 准 备 建 立 普 通 的 Visual Basic 程 序 可 以 直 接 双 击 标 准 EXE 图 标 或 直 接 按 回 车 键, 直 接 进 入 到 Visual Basic 标 准 界 面 中, 如 图 2.6 所 示 2. VB 6.0 的 退 出 (1) 选 择 文 件 退 出 (2) 单 击 窗 口 右 上 角 关 闭 按 钮 (3) 单 击 窗 口 左 上 角 ( 标 题 栏 最 左 端 的 窗 口 控 制 菜 单 框 ) 从 快 捷 菜 单 中 选 择 关 闭

第 2 章 Visual Basic 程 序 开 发 环 境 13 图 2.5 新 建 工 程 窗 口 图 2.6 VB 6.0 集 成 开 发 环 境 2.3 最 简 单 的 VB 程 序 例 2.1 所 见 即 所 得 的 欢 迎 使 用 Visual Basic 下 面 将 用 VB 建 立 我 们 的 第 一 个 应 用 程 序 欢 迎 使 用 Visual Basic, 你 将 会 看 到 用 VB 开 发 一 个 应 用 程 序 是 多 么 的 简 单 快 捷 在 这 个 例 子 中 我 们 要 程 序 启 动 后 给 我 们 显 示 一 条 欢 迎 使 用 Visual Basic 的 欢 迎 信 息, 即 使 你 对 编 程 一 无 所 知, 你 也 能 很 快 地 编 写 出 自 己 的 第 一 个 应 用 程 序 通 过 下 面 的 操 作 步 骤, 你 甚 至 可 能 会 觉 得 用 VB 编 程 跟 用 画 笔 画 图 没 什 么

14 Visual Basic 程 序 设 计 教 程 两 样 ( 在 编 写 更 复 杂 的 程 序 之 前, 你 可 以 保 留 这 个 看 法 )! 使 用 VB 创 建 我 们 的 第 一 个 应 用 程 序 的 步 骤 如 下 : 首 先 新 建 一 个 工 程 创 建 一 个 工 程 的 步 骤 如 前 面 已 经 介 绍 过 的 图 2.5 和 图 2.6, 工 程 创 建 后 将 会 出 现 形 如 图 2.6 的 界 面, 以 后 所 有 的 工 作 都 将 在 这 个 界 面 中 完 成 让 我 们 继 续 我 们 的 程 序 用 所 见 即 所 得 来 概 括 VB 编 程 的 特 点 是 完 全 可 以 的 你 把 窗 体 画 成 什 么 样, 程 序 运 行 后 就 是 什 么 样! 既 然 我 们 的 任 务 是 窗 体 上 出 现 欢 迎 使 用 Visual Basic, 直 接 把 它 们 画 在 窗 体 上 就 可 以 了 注 意 到 我 在 画 上 加 了 双 引 号, 这 是 因 为 不 能 像 在 画 笔 中 那 样 画, 要 在 窗 体 上 加 文 字, 先 得 往 窗 体 上 加 一 个 控 件 那 么 到 底 哪 些 控 件 可 以 显 示 文 字 呢? 这 得 看 控 件 的 属 性 这 里, 我 们 又 引 入 了 属 性 这 个 概 念, 属 性 这 个 词 本 身 并 不 难 理 解 如 果 把 一 个 人 比 作 控 件, 那 么, 他 的 姓 名 性 别 身 高 体 重 等 便 可 以 看 成 其 属 性 回 到 VB, 控 件 的 名 称 颜 色 大 小 ( 长 度 和 宽 度 ) 等 便 是 它 的 属 性 不 同 的 控 件 属 性 不 完 全 相 同, 也 就 是 说, 各 种 控 件 都 有 自 己 特 有 的 属 性 掌 握 各 个 控 件 的 属 性 是 VB 编 程 中 最 为 关 键 的 一 步, 本 书 将 会 在 后 面 的 章 节 中 对 各 个 控 件 做 详 细 介 绍 现 在 先 回 到 我 们 的 问 题, 哪 些 控 件 可 以 显 示 文 字? 具 有 Text( 文 字 ) 或 Caption( 标 题 ) 属 性 的 控 件 都 可 以 这 样 的 控 件 有 很 多, 常 见 的 有 文 本 框 标 签 命 令 按 钮 单 选 框 复 选 框 可 以 说, 大 部 分 控 件 都 有 一 个 Caption 属 性, 但 基 本 控 件 中 专 门 用 于 显 示 文 本 的 只 有 文 本 框 和 标 签 ( 至 于 两 者 的 区 别 后 面 会 阐 述 ), 在 这 里 我 们 不 妨 选 用 标 签 控 件 现 在 先 把 标 签 控 件 ( 即 工 具 箱 中 的 图 标 ) 拖 进 窗 体 设 计 器 中, 接 下 来 便 要 写 文 字 了 写 文 字 便 是 要 设 置 标 签 控 件 的 Caption 属 性, 看 到 标 签 上 的 Label1 字 样 了 吗? 那 是 标 签 控 件 默 认 的 Caption 属 性, 我 们 得 把 它 改 过 来 窗 体 设 计 器 右 边 有 一 个 表 格 模 样 的 窗 口, 那 就 是 属 性 窗 口, 如 图 2.7 所 示 图 2.7 Label1 属 性 窗 口 表 格 左 边 一 列 是 控 件 属 性 名 称, 右 边 一 列 是 相 应 的 属 性 值 选 定 标 签 控 件, 这 时 属 性 窗 口 最 上 面 的 列 表 框 显 示 Label1 Label,Label1 是 标 签 控 件 默 认 的 名 称 ( 你 也 可 以 改 变 标 签 的 名 称 属 性, 给 它 起 一 个 好 听 的 名 字 ) 请 找 到 Caption 属 性, 把 相 应 的 属 性 值 改 为 欢 迎 使 用 Visual Basic, 看 到 了 吗? 标 签 上 的 文 字 变 成 了 欢 迎 使 用 Visual Basic! 操 作 完 成 后 窗 体 如 图 2.8 所 示

第 2 章 Visual Basic 程 序 开 发 环 境 15 图 2.8 设 计 时 窗 体 下 面 请 保 存 文 件 ( 在 运 行 程 序 之 前 保 存 文 件 是 一 个 好 习 惯 ) 使 用 文 件 菜 单 中 的 保 存 工 程 命 令, 在 打 开 的 保 存 窗 体 对 话 框 中 输 入 窗 体 名 ex0201, 单 击 保 存 按 钮 ; 然 后 在 弹 出 的 工 程 另 存 为 对 话 框 中 输 入 工 程 名 ex0201, 单 击 保 存 按 钮, 则 完 成 工 程 的 保 存 现 在 可 以 运 行 程 序 了, 单 击 常 用 工 具 栏 中 的 运 行 按 钮, 观 察 运 行 效 果 图 2.9 就 是 程 序 运 行 后 见 到 的 界 面 图 2.9 运 行 时 窗 体 到 这 里, 我 们 一 句 代 码 也 没 写, 便 编 出 了 一 个 程 序, 这 就 是 VB 的 威 力 我 们 来 总 结 一 下 一 个 简 单 VB 程 序 的 编 制 过 程 : (1) 新 建 工 程 ; (2) 根 据 需 要 往 窗 体 添 加 控 件 ; (3) 设 置 控 件 属 性 ; (4) 保 存 工 程 并 运 行 最 后, 应 该 说 一 说 程 序 的 编 译 发 布 了 为 了 使 应 用 程 序 能 够 脱 离 VB 集 成 开 发 环 境 运 行, 我 们 需 要 把 它 编 译 成 可 执 行 文 件 (*.EXE) VB 中 编 译 一 个 程 序 是 非 常 简 单 的, 在 文 件 菜 单 中 选 择 生 成 EXE 文 件 便 可 以 生 成 你 的 可 执 行 文 件 了 但 是, 用 VB 编 的 应 用 程 序 不 能 脱 离 VB 运 行 库 运 行 要 在 没 有 安 装 VB 运 行 库 的 机 器 上 运 行 用 VB 开 发 的 应 用 程 序, 必 须 先 对 应 用 程 序 进 行 打 包 要 对 应 用 程 序 进 行 打 包, 可 以 使 用 Package and Deployment Wizard( 打 包 和 展 开 向 导 ) 为 程 序 创 建 安 装 文 件 ( 参 见 附 录 ) 一 旦 创 建 了 安 装 文 件, 就 可 以 在 没 有 安 装 Visual Basic 的 机 器 上 运 行 该 应 用 程 序 了 虽 然 我 们 可 以 不 写 一 句 代 码 便 写 出 一 个 程 序, 但 这 个 程 序 实 际 上 很 笨 我 们 不 可 以 向 它 下 达 任 何 命 令 现 在 我 们 需 要 对 例 2.1 进 行 改 进, 即 当 我 们 按 下 某 个 命 令 按 钮 后 再 显

16 Visual Basic 程 序 设 计 教 程 示 欢 迎 使 用 Visual Basic, 这 就 需 要 对 程 序 进 行 编 码 要 对 程 序 进 行 编 码 就 离 不 开 代 码 编 辑 器 顾 名 思 义, 代 码 编 辑 器 便 是 编 辑 程 序 代 码 的 地 方, 控 件 只 是 程 序 的 外 表, 代 码 才 是 程 序 的 灵 魂, 离 开 了 代 码, 程 序 基 本 上 是 没 有 意 义 的 例 2.2 善 解 人 意 的 欢 迎 使 用 Visual Basic 本 例 将 对 例 2.1 进 行 改 进, 我 们 将 往 窗 体 中 加 个 按 钮, 让 程 序 在 我 们 按 下 按 钮 之 后 才 显 示 欢 迎 信 息 具 体 创 建 该 应 用 程 序 的 操 作 步 骤 如 下 : 启 动 VB, 在 弹 出 的 对 话 框 中 选 择 现 存, 选 择 我 们 上 面 建 立 的 工 程 ( 当 然 也 可 以 先 选 择 取 消, 进 入 VB 后 再 从 文 件 菜 单 中 选 择 打 开 ), 选 择 确 定 之 后 上 面 的 工 程 会 打 开, 把 工 具 箱 中 的 按 钮 控 件 ( 默 认 的 名 称 为 Command1) 拖 进 窗 体 ( 如 图 2.10 所 示 ), 准 备 添 加 代 码 图 2.10 添 加 Command1 后 工 程 窗 体 在 添 加 代 码 之 前 先 介 绍 一 下 事 件 的 概 念 我 们 不 妨 把 事 件 理 解 为 向 程 序 发 出 的 命 令, 比 如 说, 单 击 鼠 标 按 下 键 盘 都 会 向 程 序 发 出 一 个 命 令, 也 即 产 生 了 一 个 事 件 在 VB 中, 事 件 都 有 统 一 的 命 名, 命 名 规 则 是 : 事 件 作 用 的 对 象 名 _ 事 件, 如 Form_Click, 可 以 把 Form_Click 理 解 为 Click Form( 单 击 Form), 当 我 们 在 Form 上 单 击 时, 便 会 产 生 Form_Click 事 件, 同 理, 在 按 钮 Command1 上 单 击 时, 便 会 产 生 Command1_Click 事 件 每 种 控 件 都 能 响 应 一 些 事 件, 而 不 同 的 控 件 能 响 应 的 事 件 也 是 不 尽 相 同 的 怎 样 才 能 知 道 哪 些 控 件 可 以 响 应 哪 些 事 件? 双 击 Command1 控 件, 此 时 会 出 现 代 码 编 辑 器, 在 代 码 编 辑 器 上 编 辑 代 码 如 图 2.11 所 示 图 2.11 编 写 程 序 代 码 代 码 编 辑 器 上 面 有 两 个 列 表 框, 左 边 一 个 显 示 的 是 所 选 对 象 的 名 称, 右 边 一 个 显 示 的 是

第 2 章 Visual Basic 程 序 开 发 环 境 17 对 象 相 应 的 事 件, 要 查 看 某 一 对 象 可 以 响 应 什 么 事 件, 只 需 要 在 左 边 列 表 框 选 定 对 象, 在 右 边 列 表 框 的 下 拉 列 表 中 查 看 即 可, 列 表 框 下 面 的 文 本 框 便 是 输 入 代 码 的 地 方 现 在 里 面 有 两 行 : Private Sub Command1_Click() 这 是 系 统 自 动 为 我 们 生 成 的 代 码, 它 的 具 体 含 义 会 在 后 面 介 绍, 现 在 我 们 只 需 要 往 这 两 个 语 句 间 添 加 Command1_Click() 事 件 发 生 后 要 执 行 的 代 码 在 这 个 例 子 中, 我 们 要 单 击 按 钮 后 显 示 欢 迎 使 用 Visual Basic 的 欢 迎 信 息, 从 编 程 的 角 度 出 发, 可 以 表 述 为 : Command1_Click() 事 件 发 生 后,Label1 的 Caption 属 性 变 为 欢 迎 使 用 Visual Basic 因 此, 要 加 入 的 代 码 的 任 务 是 把 Label1 的 Caption 属 性 变 为 欢 迎 使 用 Visual Basic, 而 这 一 过 程 用 VB 来 表 述 则 是 : Label1.Caption = " 欢 迎 使 用 Visual Basic" 把 这 个 语 句 加 入 程 序 中 : Private Sub Command1_Click() Label1.Caption = " 欢 迎 使 用 Visual Basic" 最 后, 把 Label1 的 Caption 属 性 改 为 空 ( 让 Label1 开 始 时 不 显 示 任 何 字 符 ), 这 样 我 们 的 程 序 便 修 改 完 毕 把 工 程 另 存 为 ex0202.vbp 并 运 行 程 序, 可 以 看 到, 窗 体 中 只 能 看 到 一 个 按 钮, 单 击 按 钮 后 便 出 现 了 欢 迎 使 用 Visual Basic 的 欢 迎 信 息, 如 图 2.12 2.13 所 示 图 2.12 单 击 按 钮 前 窗 体 状 态 图 2.13 单 击 按 钮 后 窗 体 状 态 尽 管 这 个 程 序 还 很 简 单, 但 它 的 确 能 响 应 我 们 的 命 令 了, 这 是 一 个 不 小 的 飞 跃, 在 后 面 的 章 节 中, 我 们 会 对 这 个 程 序 继 续 进 行 完 善 下 面 我 们 重 新 总 结 一 下 VB 程 序 的 编 制 过 程 :

18 Visual Basic 程 序 设 计 教 程 (1) 新 建 工 程 ; (2) 根 据 需 要 往 窗 体 添 加 控 件 ; (3) 设 置 控 件 属 性 ; (4) 添 加 代 码 ; (5) 保 存 工 程 并 运 行 2.4 Visual Basic 集 成 开 发 环 境 Visual Basic 与 其 他 大 多 数 Windows 应 用 程 序 不 同 的 是,Visual Basic 是 由 一 组 独 立 的 窗 口 组 成 ( 它 主 要 包 括 : 主 窗 口 窗 体 窗 口 属 性 窗 口 工 程 资 源 管 理 器 窗 口 代 码 窗 口 窗 体 布 局 窗 口 对 象 浏 览 器 窗 口 工 具 箱 窗 口 立 即 窗 口 ) Visual Basic 的 应 用 程 序 通 过 图 2.6 所 示 的 集 成 环 境 开 发 下 面 介 绍 各 部 分 的 功 能 和 使 用 方 法 2.4.1 主 窗 口 主 窗 口 与 Office 家 族 的 软 件 类 似, 它 由 标 题 栏 菜 单 栏 和 工 具 栏 组 成, 它 含 有 一 个 Windows 应 用 程 序 应 具 有 的 所 有 组 成 元 素, 主 窗 口 主 要 包 括 如 下 内 容 : 1. 标 题 栏 按 照 Windows 的 惯 例, 每 个 窗 口 都 具 有 标 题 栏, 标 题 栏 中 含 有 当 前 工 程 的 名 字, 以 及 最 小 化 最 大 化 及 关 闭 窗 口 的 几 个 常 规 按 钮 在 标 题 栏 中 还 显 示 了 当 前 所 处 的 模 式 ( 工 作 状 态 ) VB 有 三 种 工 作 模 式, 它 们 是 : 设 计 (Design) 模 式 运 行 (Run) 模 式 和 中 断 (Break) 模 式 (1) 设 计 模 式 : 设 计 模 式 可 进 行 用 户 界 面 的 设 计 和 代 码 的 编 制, 以 完 成 应 用 程 序 的 开 发 (2) 运 行 模 式 : 运 行 模 式 是 运 行 应 用 程 序, 这 时 不 可 以 编 辑 代 码, 也 不 可 编 辑 界 面 (3) 中 断 模 式 : 中 断 模 式 是 应 用 程 序 运 行 暂 时 中 断, 这 时 可 以 编 辑 代 码, 但 不 可 以 编 辑 界 面 按 F5 键 或 单 击 继 续 按 钮 程 序 继 续 运 行, 单 击 结 束 按 钮 程 序 停 止 运 行 在 此 模 式 下 会 弹 出 立 即 窗 口, 在 窗 口 内 可 输 入 简 短 的 命 令, 并 立 即 执 行 当 程 序 运 行 过 程 中 出 现 错 误 时, 往 往 需 要 进 行 手 工 调 试, 此 时 要 做 的 就 是 中 断 程 序 运 行 随 后 屏 幕 出 现 调 试 窗 口 以 供 检 查 2. 菜 单 栏 菜 单 是 提 供 给 用 户 设 计 和 调 试 程 序 时 的 必 要 功 能,VB 沿 用 了 Windows 的 菜 单 形 式, 菜 单 栏 中 含 有 13 个 下 拉 菜 单 这 是 程 序 开 发 过 程 中 需 要 的 命 令 3. 工 具 栏 工 具 栏 中 共 有 21 个 功 能 按 钮, 它 们 是 开 发 应 用 程 序 的 工 具, 有 了 工 具 栏, 用 户 可 以 脱 离 菜 单 而 直 接 选 择 功 能 按 钮 进 行 操 作 工 具 栏 提 供 了 VB 常 见 操 作 的 快 捷 方 式 图 标 暗 淡 时 该

第 2 章 Visual Basic 程 序 开 发 环 境 19 工 具 无 效 如 图 2.14 所 示 图 2.14 常 用 工 具 栏 (1) 添 加 Standard EXE 工 程 ( ): 用 于 添 加 新 的 工 程 (2) 添 加 窗 体 ( ): 用 于 添 加 新 的 窗 体 到 工 程 中 (3) 菜 单 编 辑 器 ( ): 它 用 于 设 计 窗 口 中 的 菜 单, 这 与 工 具 菜 单 中 的 菜 单 编 辑 器 功 能 相 同 (4) 启 动 ( ): 开 始 运 行 当 前 的 工 程 (5) 中 断 ( ): 暂 时 中 断 当 前 工 程 的 运 行 (6) 结 束 ( ): 结 束 当 前 工 程 的 运 行 (7) 工 程 资 源 管 理 器 ( ): 显 示 正 在 编 写 的 工 程 及 它 们 所 含 的 各 个 窗 体 的 名 字 (8) 属 性 窗 口 ( ): 弹 出 一 个 窗 口, 允 许 用 户 直 接 在 该 窗 口 中 更 改 包 括 窗 体 在 内 的 各 个 控 件 的 属 性 (9) 窗 体 布 局 窗 口 ( ): 显 示 所 编 辑 的 窗 体 的 大 致 外 形, 以 便 可 以 更 改 (10) 对 象 浏 览 器 ( ): 查 看 所 选 成 员 的 定 义 (11) 工 具 箱 ( ): 打 开 工 具 箱 窗 口 其 他 工 具 按 钮 的 使 用 方 法 与 Windows 常 用 工 具 栏 中 工 具 按 钮 的 使 用 方 法 一 致, 在 此 不 再 一 一 赘 述 2.4.2 窗 体 窗 口 屏 幕 中 央 具 有 均 匀 分 布 的 网 点 空 白 窗 体, 这 就 是 用 户 定 制 的 窗 体 窗 体 窗 口 又 称 为 对 象 窗 口, 主 要 用 来 在 窗 体 上 设 计 用 户 应 用 程 序 的 界 面 可 以 利 用 网 格 对 齐 控 件, 以 使 各 个 控 件 排 列 整 齐, 用 户 可 以 将 各 个 控 件 按 自 己 的 意 图, 随 心 所 欲 地 添 加 到 窗 体 的 各 个 位 置 窗 体 可 以 直 接 运 行 用 户 可 以 改 变 窗 体 的 大 小, 重 新 布 局 对 象 ( 控 件 ) 或 者 将 其 删 除, 而 且 可 以 对 每 个 对 象 的 各 个 属 性 窗 口 选 择 该 对 象 的 属 性, 以 调 整 其 行 为 及 外 观 窗 体 是 VB 应 用 程 序 的 主 要 部 分, 用 户 通 过 与 窗 体 的 控 制 部 件 交 互 来 得 到 结 果 每 个 窗 体 窗 口 必 须 有 一 个 惟 一 的 窗 体 名 字, 建 立 窗 体 时 缺 省 名 为 Form1 Form2 等 2.4.3 工 程 资 源 管 理 器 窗 口 在 VB 中, 运 行 一 项 功 能 必 须 依 赖 许 多 程 序 文 件, 为 了 管 理 这 些 文 件,VB 中 使 用 了 工 程 资 源 管 理 器 窗 口 来 管 理 它 们, 工 程 资 源 管 理 器 窗 口 保 存 一 个 应 用 程 序 所 有 属 性 以 及 组 成 这 个 应 用 程 序 所 有 的 文 件 工 程 文 件 的 后 缀 为.Vbp 工 程 窗 口 由 标 题 栏 工 具 栏 窗 口 组 成 : 1. 标 题 栏 它 的 标 题 通 常 是 工 程 1 2. 工 具 栏

20 Visual Basic 程 序 设 计 教 程 该 栏 中 有 三 个 按 钮 : (1) 查 看 代 码 : 切 换 到 代 码 窗 口, 对 所 编 辑 的 程 序 的 代 码 进 行 浏 览 (2) 查 看 对 象 : 切 换 到 对 象 窗 口, 对 包 括 窗 体 在 内 的 各 个 控 件 进 行 编 辑 (3) 切 换 文 件 夹 : 对 当 前 窗 体 所 在 文 件 夹 进 行 切 换 通 常 情 况 下, 一 个 工 程 主 要 包 括 如 下 四 个 文 件 : 1 窗 体 文 件 : 它 的 扩 展 名 为.Frm, 主 要 用 途 是 设 计 程 序 窗 体 ( 口 ), 一 个 程 序 至 少 需 要 一 个 窗 体 ; 2 标 准 模 块 文 件 : 它 的 扩 展 名 为.Bas, 程 序 模 块 通 常 是 由 BASIC 语 言 编 写, 在 执 行 工 程 时, 供 其 他 程 序 使 用, 是 一 个 可 共 用 的 子 程 序 一 般 在 一 个 工 程 文 件 中, 可 以 有 若 干 个 标 准 模 块 文 件 ; 3 工 程 文 件 : 它 的 扩 展 名 为.Vbp,VB 中 一 次 只 能 打 开 一 个 工 程 文 件, 它 只 提 供 一 些 相 关 文 件 和 程 序 模 块 的 数 据 ; 4 类 模 块 文 件 : 它 的 扩 展 名 为.Cls,VB 中 提 供 了 大 量 预 定 义 的 类, 同 时 也 允 许 用 户 根 据 需 要 定 义 自 己 的 类, 每 个 类 都 用 一 个 文 件 来 保 存 2.4.4 属 性 窗 口 属 性 窗 口 包 括 了 所 有 窗 体 或 控 件 的 属 性, 如 : 颜 色 字 体 大 小 等 如 果 要 更 改 属 性, 可 以 通 过 该 窗 口 来 修 改 另 外 对 于 只 读 属 性 之 外 的 属 性 可 以 在 程 序 运 行 过 程 中 动 态 设 置 属 性 窗 口 由 以 下 几 个 部 分 组 成 : (1) 标 题 栏 : 包 括 了 窗 体 或 控 件 的 名 称 (2) 对 象 列 表 框 : 其 中 含 有 窗 体 或 控 件 的 名 称, 单 击 它 右 侧 的 箭 头, 可 拉 出 所 选 窗 体 包 含 的 对 象 的 列 表, 可 以 选 择 当 前 窗 体 或 其 他 控 件 (3) 属 性 列 表 框 : 有 按 字 母 序 和 按 分 类 序 两 个 按 钮 选 项 卡, 列 出 所 选 对 象 ( 控 件 ) 的 属 性 左 边 为 对 象 的 属 性, 右 边 是 每 个 属 性 对 应 的 当 前 设 置 对 于 不 同 的 对 象 它 所 列 出 的 属 性 是 不 同 的 用 户 可 以 选 择 某 一 属 性, 然 后 对 该 属 性 值 进 行 设 置 或 修 改 (4) 属 性 含 义 说 明 : 当 在 属 性 列 表 框 选 择 某 一 属 性 时, 在 该 区 域 显 示 所 选 属 性 的 含 义 2.4.5 代 码 窗 口 代 码 窗 口 是 用 来 专 门 进 行 程 序 设 计 的 窗 口, 可 在 其 中 显 示 和 编 辑 程 序 代 码, 用 户 可 以 打 开 多 个 代 码 窗 口, 查 看 不 同 窗 体 标 准 模 块 中 的 代 码, 并 可 在 各 窗 口 间 复 制 代 码 打 开 代 码 窗 口 的 方 法 有 : (1) 从 工 程 窗 口 中 选 择 一 个 窗 体 或 标 准 模 块, 再 选 择 查 看 代 码 按 钮 (2) 可 用 鼠 标 双 击 一 个 控 件 或 窗 体 本 身 即 可 打 开 代 码 窗 口 (3) 从 视 图 菜 单 中 选 择 代 码 窗 口 即 视 图 代 码 窗 口 代 码 窗 口 如 图 2.15 所 示 它 主 要 包 括 : (1) 对 象 列 表 框 : 下 拉 式 列 表 框, 它 存 储 并 显 示 当 前 被 选 中 窗 体 及 所 有 控 件 名 其 中 通 用 表 示 与 特 定 对 象 无 关 的 通 用 代 码 一 般 在 此 声 明 非 局 部 变 量 或 由 用 户 编 写 的 自 定 义 函 数 和 过 程

第 2 章 Visual Basic 程 序 开 发 环 境 21 (2) 过 程 列 表 框 : 下 拉 式 列 表 框, 存 储 并 显 示 各 种 事 件 过 程 名 称 在 对 象 列 表 框 中 选 择 对 象 名, 在 过 程 列 表 框 中 选 择 事 件 过 程 名, 即 可 构 成 选 中 对 象 的 事 件 过 程 模 板, 用 户 可 在 模 板 内 输 入 代 码, 其 中 声 明 表 示 声 明 非 局 部 变 量 对 象 的 事 件 过 程 模 板 的 一 般 形 式 : Private Sub 对 象 名 _ 事 件 过 程 名 [( 参 数 列 表 )] ( 用 户 代 码 或 事 件 过 程 代 码 ) 图 2.15 代 码 窗 口 2.4.6 工 具 箱 窗 口 该 窗 口 由 21 个 被 绘 制 成 按 钮 形 式 的 图 标 构 成, 它 们 是 各 种 控 件 的 制 作 工 具 利 用 这 些 工 具, 用 户 可 在 窗 体 上 设 计 各 种 控 件, 这 些 控 件 称 为 标 准 控 件 ( 指 针 不 是 控 件, 它 仅 用 于 对 控 件 的 编 辑 ), 用 户 可 以 通 过 工 程 菜 单 中 的 部 件 命 令 将 系 统 提 供 的 其 他 标 准 控 件 装 入 工 具 箱 工 具 箱 主 要 用 于 应 用 程 序 的 界 面 设 计 在 设 计 阶 段, 首 先 用 工 具 箱 中 的 工 具 ( 即 控 件 ) 在 窗 体 上 建 立 用 户 界 面, 然 后 编 写 程 序 代 码 界 面 的 设 计 完 全 通 过 控 件 来 实 现, 可 以 任 意 改 变 其 大 小, 移 动 到 窗 体 的 任 意 位 置 2.4.7 窗 体 布 局 窗 口 窗 体 布 局 窗 口 用 于 指 定 程 序 运 行 时 的 初 始 位 置 主 要 为 使 所 开 发 的 应 用 程 序 能 在 各 个 不 同 分 辨 率 的 屏 幕 上 正 常 运 行, 在 多 重 窗 体 应 用 程 序 中 较 为 有 用 ( 初 始 位 置 指 屏 幕 的 任 何 位 置 ) 2.4.8 对 象 浏 览 器 窗 口 该 窗 口 可 查 看 在 工 程 中 定 义 的 模 块 或 过 程, 也 可 以 查 看 对 象 库 类 型 库 类 方 法 属 性 事 件 及 可 在 过 程 中 使 用 的 常 量

22 Visual Basic 程 序 设 计 教 程 2.5 创 建 一 个 VB 应 用 程 序 的 方 法 和 步 骤 在 Visual Basic 中 创 建 一 个 应 用 程 序 非 常 简 单 一 般 先 设 计 应 用 程 序 的 外 观, 然 后 再 分 别 编 写 各 对 象 事 件 的 程 序 代 码 或 其 他 处 理 程 序 具 体 包 含 以 下 几 个 步 骤 : 1. 创 建 应 用 程 序 界 面 应 用 程 序 界 面 是 用 户 和 程 序 交 互 的 桥 梁, 用 VB 创 建 的 标 准 Windows 应 用 程 序 的 界 面 一 般 由 窗 体 按 钮 菜 单 文 本 框 和 图 像 框 等 对 象 构 成 一 般 应 根 据 程 序 的 功 能 要 求 和 用 户 与 程 序 之 间 的 信 息 交 流 的 需 要 来 确 定 需 要 哪 些 对 象, 进 而 规 划 界 面 的 布 局 2. 设 置 界 面 上 各 个 对 象 的 属 性 根 据 规 划 的 界 面 要 求 设 置 各 个 对 象 的 属 性, 比 如 对 象 的 外 观 名 称 颜 色 大 小 等 大 多 数 属 性 取 值 既 可 以 在 设 计 时 通 过 属 性 窗 口 来 设 置, 也 可 以 在 程 序 代 码 中 通 过 编 程 在 程 序 运 行 时 设 置 修 改 3. 编 写 对 象 相 应 的 程 序 代 码 界 面 仅 仅 决 定 了 程 序 的 外 观, 设 计 完 界 面 后 就 要 通 过 代 码 编 辑 器 窗 口 来 添 加 代 码, 实 现 一 些 在 接 受 外 界 信 息 后 做 出 的 响 应 信 息 处 理 等 任 务 添 加 代 码 如 前 面 的 图 2.15 代 码 窗 口 所 示 4. 保 存 工 程 一 个 VB 程 序 就 是 一 个 工 程, 在 设 计 一 个 应 用 时, 系 统 会 建 立 一 个 扩 展 名 为.Vbp 的 工 程 文 件, 工 程 文 件 包 含 了 该 工 程 所 建 立 的 所 有 文 件 的 相 关 信 息, 保 存 工 程 同 时 就 保 存 了 该 工 程 的 所 有 相 关 文 件 比 如 当 设 计 界 面 时 产 生 的 窗 体 保 存 在 扩 展 名 为.Frm 的 窗 体 文 件 中, 在 打 开 一 个 工 程 ( 文 件 ) 时, 该 工 程 有 关 的 所 有 文 件 同 时 被 装 载 5. 运 行 和 调 试 程 序 通 过 运 行 菜 单 中 的 选 项 来 运 行 程 序, 当 程 序 出 错 时,VB 系 统 可 提 供 信 息 提 示, 也 可 通 过 调 试 和 运 行 菜 单 来 查 找 和 排 除 错 误 6. 生 成 可 执 行 程 序 为 了 使 程 序 可 以 脱 离 VB 环 境, 通 过 文 件 菜 单 中 的 生 成.EXE 命 令 来 生 成 可 执 行 程 序 (.EXE 文 件 ), 此 后 即 可 直 接 执 行 该 文 件 在 生 成 可 执 行 程 序 后, 再 通 过 打 包 和 展 开 向 导 ( 见 附 录 A) 将 所 有 相 关 文 件 打 包, 就 可 以 作 为 一 个 软 件 产 品 在 Windows 9X/2000 等 环 境 下 安 装 后 独 立 运 行 习 题 1. 与 传 统 的 程 序 设 计 语 言 相 比,Visual Basic 语 言 有 什 么 特 点? 2.Visual Basic 6.0 有 几 种 版 本? 其 主 要 区 别 是 什 么? 3. 若 条 件 允 许, 请 你 自 己 安 装 Visual Basic 6.0, 体 会 Visual Basic 6.0 的 安 装 过 程 4. 在 正 确 安 装 了 Visual Basic 6.0 后, 可 以 通 过 几 种 方 法 启 动 和 退 出 Visual Basic 6.0? 5.Visual Basic 6.0 集 成 开 发 环 境 有 哪 些 部 分 组 成? 每 个 部 分 的 主 要 功 能 是 什 么?

第 2 章 Visual Basic 程 序 开 发 环 境 23 6.Visual Basic 6.0 的 工 具 箱 窗 口 中 的 常 用 控 件 有 哪 些? 请 你 在 窗 体 设 计 器 上 画 出 常 用 控 件 并 查 看 每 个 控 件 的 属 性 7.Visual Basic 6.0 的 常 用 工 具 栏 共 有 多 少 个 功 能 按 钮? 每 个 功 能 按 钮 的 作 用 是 什 么? 8. 用 Visual Basic 开 发 程 序 有 什 么 特 点? 简 述 创 建 一 个 VB 应 用 程 序 的 方 法 和 步 骤 9. 根 据 本 章 例 2.1 和 例 2.2, 设 计 如 下 窗 体 如 图 2.16, 在 该 窗 体 中 有 两 个 命 令 按 钮 Command1 和 Command2 和 一 个 标 签 控 件 当 运 行 该 应 用 程 序 时, 单 击 命 令 按 钮 Command1, 在 标 签 控 件 中 显 示 我 学 会 使 用 Visual Basic 开 发 应 用 程 序 了! 文 字 信 息 ; 单 击 命 令 按 钮 Command2, 则 在 标 签 控 件 中 不 显 示 任 何 文 字 信 息 图 2.16 设 计 时 窗 体 请 读 者 进 一 步 将 图 2.16 窗 体 中 标 签 控 件 的 Caption 属 性 设 置 为 空, 将 命 令 按 钮 Command1 的 Caption 属 性 设 置 为 确 定, 将 命 令 按 钮 Command2 的 Caption 属 性 设 置 为 清 空

第 3 章 可 视 化 程 序 设 计 初 步 3.1 VB 程 序 设 计 中 的 几 个 基 本 概 念 3.1.1 对 象 对 象 是 代 码 和 数 据 的 集 合, 可 以 作 为 一 个 单 位 来 处 理 在 VB 环 境 下, 对 象 可 以 是 应 用 程 序 的 一 部 分, 比 如 可 以 是 控 件 或 窗 体 整 个 应 用 程 序 也 是 一 个 对 象 我 们 上 一 章 提 到 的 窗 体 命 令 按 钮 ( 控 件 ) 标 签 控 件 都 是 对 象 实 际 上 对 象 是 一 个 很 广 泛 的 概 念, 要 理 解 编 程 中 对 象 的 概 念, 我 们 还 必 须 有 一 些 类 的 知 识 Visual Basic 中 的 每 个 对 象 都 是 用 类 定 义 的 用 饼 干 模 子 和 饼 干 之 间 的 关 系 作 比 喻, 就 会 明 白 对 象 和 它 的 类 之 间 的 关 系 饼 干 模 子 是 类, 它 确 定 了 每 块 饼 干 的 特 征, 比 如 大 小 和 形 状 用 类 创 建 对 象, 对 象 就 是 饼 干 在 Visual Basic 的 工 具 箱 上, 控 件 代 表 类 在 创 建 控 件 之 时 也 就 是 在 复 制 控 件 类, 或 建 立 控 件 类 的 实 例, 这 个 类 实 例 就 是 应 用 程 序 中 引 用 的 对 象 在 设 计 时 操 作 的 窗 体 是 类 ; 在 运 行 时,Visual Basic 建 立 窗 体 的 类 实 例 我 们 所 说 的 对 象, 就 是 类 的 实 例 在 VB 编 程 中, 大 多 数 时 候, 我 们 是 在 跟 对 象 打 交 道 我 们 所 要 做 的 工 作 便 是 创 建 对 象 设 置 对 象 属 性 捕 获 并 处 理 来 自 对 象 的 事 件, 而 不 必 去 关 心 对 象 的 底 层 运 作,VB 将 程 序 员 从 繁 琐 的 底 层 程 序 设 计 中 解 救 出 来 这 正 是 VB 易 学 易 用 的 原 因 3.1.2 对 象 的 属 性 VB 中 的 每 个 对 象 都 有 一 组 特 征, 这 组 特 征 称 为 属 性, 不 同 的 对 象 有 不 同 的 属 性 常 见 的 属 性 有 标 题 (Caption) 名 称 (Name) 背 景 颜 色 (Backcolor) 字 体 (Font) 是 否 有 效 (Enabled) 是 否 可 见 (Visible) 等 通 过 修 改 对 象 的 属 性 能 够 控 制 对 象 的 外 观 和 操 作 设 置 或 改 变 对 象 属 性 的 一 般 步 骤 为 : (1) 选 中 要 操 作 的 对 象 ; (2) 在 属 性 窗 口 的 属 性 列 表 框 中 找 到 要 操 作 的 属 性, 此 时 设 置 框 中 为 当 前 控 件 该 属 性 的 当 前 设 置 ; (3) 在 设 置 框 中 键 入 或 选 择 用 户 的 设 置 在 第 二 章 的 示 例 中, 我 们 通 过 设 置 标 签 控 件 的 Caption 属 性 在 标 签 上 显 示 字 符, 通 过 设 置 控 件 的 属 性, 我 们 还 可 以 做 很 多 有 意 思 的 事 : 在 程 序 中 改 变 控 件 的 宽 度 或 高 度 (Width 和 Height 属 性 ) 可 以 使 控 件 变 大 变 小 ; 改 变 控 件 的 位 置 ( Left 和 Top 属 性 ), 可 以 移 动 控 件 ; 连 续 地 改 变 控 件 位 置, 便 可 产 生 动 画 效 果 ; 改 变 控 件 的 前 景 色 或 背 景 色, 可 以 让 控 件 产 生 美 妙 的 色 彩 变 化 等 等 可 见, 属 性 非 常 重 要, 它 是 我 们 与 控 件 之 间 的 桥 梁, 掌 握 控 件 的 属 性 是 VB 编

第 3 章 可 视 化 程 序 设 计 初 步 25 程 非 常 重 要 的 一 步 尽 管 VB 中 控 件 很 多, 属 性 也 不 尽 相 同, 但 你 并 不 需 要 死 记 哪 些 控 件 有 哪 些 属 性 在 VB 编 程 环 境 中, 你 能 随 时 获 得 系 统 的 提 示 不 过, 了 解 常 见 属 性 的 含 义 及 其 使 用 还 是 很 有 必 要 的 3.1.3 对 象 的 事 件 事 件 (Event) 就 是 对 象 上 所 发 生 的 事 情 在 VB 中, 事 件 是 预 先 定 义 好 的 能 够 被 对 象 识 别 的 动 作, 如 单 击 (Click) 事 件 双 击 (DblClick) 事 件 装 载 (Load) 事 件 鼠 标 移 动 (MouseMove) 事 件 等, 不 同 的 对 象 能 够 识 别 不 同 的 事 件 对 象 的 事 件 是 固 定 的, 用 户 不 能 建 立 新 的 事 件 当 事 件 由 用 户 触 发 ( 如 单 击, 触 发 Click 事 件 ) 或 由 系 统 触 发 ( 如 装 载, 触 发 Load 事 件 ) 时, 对 象 就 会 对 该 事 件 做 出 响 应, 响 应 某 个 事 件 后 所 执 行 的 程 序 代 码 就 是 事 件 过 程 Windows 下 应 用 程 序 的 执 行 是 由 事 件 驱 动 的, 如 果 说 属 性 是 程 序 员 与 控 件 之 间 的 桥 梁, 那 么 事 件 便 是 用 户 与 程 序 之 间 的 桥 梁 用 户 使 用 程 序 的 过 程, 便 是 不 断 触 发 各 种 事 件, 向 程 序 下 达 指 令 的 过 程 离 开 了 事 件, 程 序 便 难 以 知 道 用 户 在 干 什 么 及 想 干 什 么, 因 此, 程 序 员 一 个 非 常 重 要 的 任 务 就 是 在 用 户 和 程 序 之 间 架 好 桥 梁 不 要 把 这 个 任 务 看 得 太 复 杂, 实 际 上 我 们 在 第 二 章 例 2.2 中 已 经 做 到 了 这 一 点, 而 我 们 所 做 的 不 过 是 在 一 个 事 件 过 程 中 加 了 一 行 代 码 让 我 们 重 温 一 下 那 三 行 起 桥 梁 作 用 的 代 码 : Private Sub Command1_Click() Label1.Caption = " 欢 迎 使 用 Visual Basic" 3.1.4 对 象 的 方 法 一 般 来 说, 方 法 就 是 要 执 行 的 动 作 VB 中 的 方 法 跟 事 件 过 程 类 似, 它 可 能 是 函 数, 也 可 能 是 过 程, 它 用 于 完 成 某 种 特 定 功 能 而 不 能 响 应 某 个 事 件 如 显 示 窗 体 (Show) 方 法 移 动 (Move) 方 法 等 VB 中 方 法 用 得 并 没 有 属 性 和 事 件 多, 但 方 法 也 是 VB 控 件 必 不 可 少 的 一 部 分, 方 法 通 常 用 于 操 作 控 件, 这 跟 属 性 有 点 相 似, 但 方 法 提 供 了 更 为 直 接 的 操 作 控 件 的 途 径, 而 且, 某 些 控 件 操 作 是 必 须 用 控 件 的 方 法 来 完 成 的 方 法 的 引 用 与 属 性 有 点 相 似, 用 控 件 名. 方 法 名 参 数 就 可 以 调 用 控 件 的 方 法 方 法 可 能 会 带 有 参 数, 多 参 数 之 间 用, 分 隔, 参 数 的 具 体 含 义, 要 视 具 体 控 件 具 体 方 法 而 定 3.2 窗 体 在 VB 学 习 之 前, 我 们 应 当 具 备 一 些 Windows 编 程 的 基 本 知 识 我 们 都 知 道 Windows 是 一 个 基 于 图 形 用 户 界 面 (GUI) 的 操 作 系 统, 每 一 个 应 用 程 序 都 至 少 有 一 个 窗 口, 用 于 用 户 与 程 序 进 行 交 互 而 在 VB 中, 要 创 建 的 窗 体, 就 是 Windows 下 的 窗 口 VB 中 的 控 件, 都 包 容 在 窗 体 中 窗 体 是 控 件 界 面 的 基 本 构 造 模 块 窗 体 是 一 种 对 象, 由 属 性 定 义 其 外 观,

26 Visual Basic 程 序 设 计 教 程 由 事 件 定 义 与 用 户 的 交 互 通 过 设 置 窗 体 的 属 性 并 编 写 响 应 事 件 的 代 码, 就 能 编 写 出 满 足 要 求 的 各 种 用 户 界 面, 完 成 各 种 不 同 的 任 务 控 件 是 包 括 在 窗 体 中 的 对 象, 我 们 也 可 以 对 其 设 置 属 性, 编 写 响 应 事 件 的 代 码, 以 适 应 用 户 的 需 求 下 面 讲 述 窗 体 的 创 建 过 程, 并 说 明 其 属 性 的 设 置 3.2.1 窗 体 的 结 构 启 动 一 个 新 的 工 程 文 件, 屏 幕 中 间 有 一 个 带 网 点 ( 称 为 网 格 ) 的 窗 口, 这 就 是 用 户 的 窗 体, 一 般 也 是 程 序 运 行 时 的 主 窗 口, 如 图 3.1 所 示 你 可 以 调 整 该 窗 体 的 大 小, 对 该 窗 体 大 小 的 调 整 及 属 性 值 的 改 变 等 操 作 称 为 定 制 窗 体 对 窗 体, 控 件 的 定 制 或 设 计 期 间 称 为 设 计 过 程, 程 序 运 行 期 间 称 为 运 行 过 程 图 3.1 窗 体 的 结 构 3.2.2 窗 体 的 属 性 通 过 修 改 窗 体 的 属 性 可 以 改 变 窗 体 内 在 或 外 在 的 结 构 特 征, 控 制 窗 体 的 外 观 常 用 的 窗 体 属 性 有 : (1)Name 属 性 : 在 VB 中, 窗 体 默 认 的 Name 属 性 为 Form1, 有 多 个 窗 体 时 依 次 类 推, 当 然 我 们 也 可 按 照 自 己 的 需 要 进 行 命 名 (2)Caption 属 性 : 用 于 设 置 窗 口 的 标 题 不 难 看 到, 每 个 应 用 程 序 的 标 题 栏 里 都 有 一 个 用 于 识 别 不 同 应 用 程 序 的 标 题 通 过 在 属 性 窗 口 里 更 改 窗 体 的 Caption 属 性, 来 使 用 我 们 自 己 喜 欢 的 标 题 例 如 我 们 把 自 己 的 大 名 之 类 的 敏 感 名 词 写 上 去, 并 在 运 行 此 程 序 时 显 现 出 来, 这 对 于 初 学 者 来 说, 将 是 一 件 很 有 成 就 感 的 事 情 (3)Icon 属 性 : 正 如 标 题 一 样, 每 一 个 程 序 都 有 一 个 图 标, 可 以 通 过 设 置 Icon 属 性, 将 我 们 喜 爱 的 图 标 放 到 自 己 的 杰 作 里 面 去 具 体 方 法 : 单 击 属 性 窗 口 中 的 Icon 属 性 栏, 此 栏 的 最 右 端 将 出 现 一 个 带 有 三 个 小 点 的 按 钮, 单 击 此 按 钮 ( 记 住 : 以 后 碰 到 这 种 按 钮, 都 是 要 我 们 插 入 一 些 文 件 ), 将 弹 出 一 个 打 开 文 件 的 对 话 框, 选 择 想 使 用 的 图 标 文 件 (.Ico) 即 可 (4)Left,Top 和 Height,Width 属 性 ( 位 置, 大 小 属 性 ): 我 们 不 仅 可 以 在 属 性 窗 口 里 设 置 这 些 属 性, 更 为 简 单 的 方 法 是 : 可 以 用 拖 动 鼠 标 的 方 法 来 改 变 窗 体 的 大 小 ( 正 如 操 作 Windows 窗 口 一 样 ) 而 对 于 位 置 属 性, 可 以 使 用 VB 的 窗 体 布 局 窗 口, 它 位 于 VB 环 境 的 右 下 角, 其 外 观 如 一 个 显 示 器 模 样, 将 鼠 标 移 到 此 小 显 示 器 内 的 窗 体 上, 鼠 标 立 即 变 成 一 个 十 字 形, 此 时 按 住 鼠 标 左 键 拖 动, 即 可 改 变 窗 体 的 位 置 (5)Picture 属 性 : 此 属 性 用 来 设 置 窗 体 的 背 景 图 片, 其 引 入 图 片 的 方 法 同 Icon 引 入 图 标

第 3 章 可 视 化 程 序 设 计 初 步 27 一 样, 不 过 此 处 要 用 位 图 文 件 (.BMP), 而 不 是 图 标 文 件 (6)Enabled 属 性 : 此 属 性 用 于 设 置 窗 体 以 及 其 内 部 的 控 件 对 象 是 否 能 响 应 用 户 的 操 作, 其 取 值 为 True 或 False 当 取 True 时, 能 响 应 用 户 操 作 ; 设 置 为 False 时, 不 能 响 应 用 户 操 作 在 编 程 时, 一 般 不 在 属 性 窗 口 中 把 它 设 置 为 False, 而 是 在 程 序 的 执 行 过 程 中, 对 它 进 行 改 变, 用 以 停 止 接 收 用 户 的 操 作 (7)MaxButton 和 MinButton 属 性 : 此 两 属 性 用 于 设 置 窗 体 的 标 题 栏 是 否 具 有 最 大 化 和 最 小 化 按 钮 两 者 的 取 值 皆 为 True 或 False 取 True 时, 有 此 按 钮 ; 取 False 时, 无 此 按 钮 (8)Moveable 属 性 : 此 属 性 用 于 设 置 窗 体 是 否 能 移 动 当 它 被 设 置 为 True 时, 可 以 通 过 鼠 标 拖 动 窗 体 ; 当 设 置 为 False 时, 不 能 拖 动 窗 体 (9)WindowState 属 性 : 此 属 性 用 于 设 置 窗 体 启 动 时 窗 体 的 状 态, 有 三 种 形 式 可 供 选 择 : 1 正 常 显 示 启 动 程 序 时 窗 体 的 大 小 为 设 置 的 大 小, 其 位 置 也 为 我 们 设 置 的 位 置, 此 时 此 属 性 的 取 值 为 Normal 2 最 大 化 显 示 启 动 时 窗 体 布 满 整 个 桌 面, 其 效 果 相 当 于 单 击 最 大 化 按 钮, 此 时 此 属 性 的 取 值 为 Maximized 3 最 小 化 显 示 启 动 时 窗 体 缩 小 为 任 务 栏 里 的 一 个 图 标, 其 效 果 相 当 于 单 击 最 小 化 按 钮, 此 时 此 属 性 的 取 值 为 Minimized (10)Backcolor 属 性 : 此 属 性 用 于 确 定 窗 体 的 背 景 颜 色 3.2.3 窗 体 的 事 件 (1)Load: 此 事 件 在 窗 体 进 行 初 始 化 时 产 生, 我 们 可 以 在 其 中 调 用 函 数 或 方 法 达 到 某 些 效 果, 也 可 以 用 来 对 某 些 变 量 赋 初 值 (2)Unload: 此 事 件 在 窗 体 退 出 时 产 生, 可 执 行 的 操 作 主 要 是 关 闭 已 打 开 的 文 件 等 例 3.1 窗 体 属 性 的 设 置 此 例 中, 我 们 将 看 到 如 何 通 过 改 变 属 性 值 来 改 变 窗 体 的 外 部 形 状 假 设 我 们 已 经 创 建 了 一 个 VB 的 默 认 窗 体, 下 面 我 们 来 看 一 看 属 性 的 设 置 方 法, 设 置 此 窗 体 的 属 性 如 下 : Caption= 我 的 窗 体 Icon=( 图 标 ) Picture=( 背 景 图 片 ) 首 先 来 设 置 窗 体 的 Caption 属 性 : 在 属 性 窗 口 中 选 择 Form1, 然 后 在 属 性 栏 内 选 择 Caption, 并 将 它 更 改 为 我 的 窗 体, 当 然, 也 可 以 把 它 设 置 为 其 他 的 名 字, 其 设 置 的 情 形 如 图 3.2 所 示 我 们 再 来 看 一 看 Icon 属 性 的 设 置, 其 设 置 方 法 与 Caption 的 设 置 有 一 点 不 同 因 为 图 标 是 一 个 文 件, 我 们 需 要 从 列 表 框 中 选 择 一 个 文 件 作 为 图 标, 不 过, 此 属 性 的 设 置 也 是 在 属 性 窗 口 进 行 的 首 先, 我 们 在 属 性 窗 口 中 找 到 Icon 一 栏, 单 击 此 栏, 就 会 发 现 此 栏 的 右 端 将 出 现 一 个 带 有 三 个 小 点 的 按 钮, 如 图 3.3 所 示 单 击 此 按 钮, 将 弹 出 一 个 对 话 框 在 这 里, 我 们 可 以 选 择 一 个 自 己 喜 欢 的 图 标 文 件 作 为 窗 体 的 图 标 Picture 属 性 的 设 置 和 Icon 属 性 的 设 置 方 法 完 全 相 同, 只 不 过 此 时 我 们 是 为 窗 体 选 择 一 个 背 景 图 案, 我 们 会 看 到 加 载 图 片 的 对 话 框 下 面, 我 们 再 来 看 另 一 种 类 型 的 属 性 的 设 置 方 法,

28 Visual Basic 程 序 设 计 教 程 这 种 类 型 的 属 性 值 为 有 限 的 几 个, 我 们 可 以 从 列 表 中 选 择, 这 种 类 型 的 典 型 代 表 是 那 些 取 值 为 True 或 False 的 属 性, 下 面 以 MaxButton 属 性 的 设 置 为 例 进 行 讲 述 同 样, 我 们 首 先 在 属 性 窗 口 中 找 到 MaxButton 一 项, 然 后 单 击 此 项, 就 会 发 现 此 栏 的 最 右 端 出 现 一 个 带 有 倒 三 角 的 按 钮, 单 击 此 按 钮, 就 会 出 现 如 图 3.4 所 示 的 对 话 框 图 3.2 Caption 属 性 的 设 置 图 3.3 Icon 属 性 的 设 置 这 里, 我 们 把 MaxButton 属 性 设 置 为 False 进 行 了 此 三 属 性 的 设 置 之 后, 我 们 来 运 行 一 下 程 序, 看 一 看 属 性 更 改 带 来 的 效 果 首 先, 看 一 看 如 何 运 行 此 程 序 运 行 程 序 的 方 法 有 好 几 种, 常 用 的 是 使 用 工 具 条 上 的 按 钮, 如 图 3.5 所 示 图 3.4 设 置 MaxButton 时 的 下 拉 菜 单 图 3.5 工 具 条 上 的 运 行 按 钮 从 图 3.5 中 可 以 看 到 此 工 具 条 上 的 三 个 与 程 序 运 行 有 关 的 按 钮 : 启 动 中 断 结 束, 常 用 的 是 第 一 个 和 第 三 个 其 中, 启 动 用 于 执 行 程 序, 中 断 用 于 暂 停 程 序 的 执 行, 结 束 用 于 结 束 当 前 程 序 的 运 行 此 三 个 按 钮 对 于 调 试 程 序 是 相 当 有 用 的 当 然, 也 可 以 使 用 运 行 菜 单 的 相 应 项, 另 外, 还 可 以 使 用 VB 提 供 给 我 们 的 快 捷 键 F5 现 在 就 可 以 运 行 程 序 了 单 击 启 动 按 钮 或 按 一 下 F5, 可 以 将 看 到 如 图 3.6 所 示 的 窗 体 需 要 注 意 的 是, 图 3.6 中 的 背 景 图 片 来 自 于 一 张 图 片 文 件 同 时, 我 们 也 可 以 看 到, 在 标 题 栏 内, 最 大 化 按 钮 为 灰 色 显 示, 而 且 不 能 响 应 单 击 事 件, 这 就 是 我 们 把 MaxButton 属 性 设 置 为 False 的 结 果 从 此 例 我 们 不 难 看 到, 在 VB 编 程 中, 我 们 可 以 通 过 简 单 的 属 性 的 设 置 就 能 实 现 不 同 的 显 示 效 果, 这 也 正 是 VB 编 程 的 优 势 和 方 便 之 处 所 在 但 是 通 过 属 性 的 设 置 只 能 得 到 显 示 效 果, 而 不 能 增 强 程 序 的 处 理 能 力 在 对 VB 各 个 控 件 进 行 属 性 设 置 的 时 候, 我 们 要 保 持 慎 重,

第 3 章 可 视 化 程 序 设 计 初 步 29 因 为 VB 中 各 个 控 件 的 属 性 之 间 有 着 很 大 的 联 系 在 编 程 时, 不 是 特 别 需 要 的 情 况 下, 我 们 一 般 使 用 它 们 的 默 认 属 性, 默 认 属 性 便 是 一 种 标 准 的 属 性 设 置 图 3.6 创 建 的 第 一 个 窗 体 例 3.2 在 例 3.1 的 基 础 上 进 一 步 实 现 使 用 窗 体 的 Load 事 件 此 例 中, 我 们 将 在 Form 的 Load 事 件 中, 加 入 一 个 消 息 显 示 窗 口 其 结 果 是, 在 窗 体 出 现 之 前, 看 到 一 个 消 息 框 这 时, 只 有 在 单 击 确 定 按 钮 之 后, 才 会 显 示 主 窗 体 在 第 四 章 中, 我 们 将 全 面 地 介 绍 消 息 框 的 使 用 方 法 下 面 是 程 序 的 创 建 过 程, 先 来 看 一 看 消 息 框 的 外 形, 如 图 3.7 所 示 图 3.7 消 息 框 的 外 形 我 们 来 看 一 看 如 何 实 现 此 效 果 下 面 就 要 开 始 学 习 代 码 的 编 写 了 首 先, 看 一 看 如 何 在 VB 中 编 写 代 码, 我 们 将 学 习 几 个 技 巧 (1) 在 第 二 章 的 学 习 中, 我 们 已 经 了 解 了 窗 体 窗 口 和 代 码 窗 口 在 创 建 完 图 3.1 中 的 窗 体 后, 双 击 窗 体 中 的 任 意 地 方, 就 可 以 看 到 如 图 3.8 所 示 的 代 码 窗 口 了 此 种 方 法 的 特 点 是, 可 以 直 接 切 换 到 窗 体 的 常 用 事 件 Load 的 代 码 编 写 行 中 这 种 方 法 对 于 其 他 控 件 也 是 有 用 的, 比 如 说, 在 我 们 即 将 学 到 的 按 钮 控 件 中, 可 以 通 过 在 窗 体 窗 口 中 双 击 按 钮 控 件, 直 接 切 换 到 命 令 按 钮 的 常 用 事 件 即 单 击 事 件 的 代 码 编 写 段 中 (2) 在 图 3.8 中, 可 以 看 到 查 看 代 码 和 查 看 对 象 两 个 按 钮, 通 过 此 两 按 钮, 可 以 在 代 码 窗 口 和 窗 体 窗 口 之 间 切 换 但 此 时, 不 会 出 现 如 图 3.8 中 所 示 的 Sub 语 句, 我 们 需 要 用 图 3.9 所 示 的 下 拉 菜 单 来 选 择 对 象 和 事 件