收藏 分享(赏)

VISUAL BASIC入门教程.pdf

上传人:精品资料 文档编号:8957111 上传时间:2019-07-18 格式:PDF 页数:15 大小:182.35KB
下载 相关 举报
VISUAL BASIC入门教程.pdf_第1页
第1页 / 共15页
VISUAL BASIC入门教程.pdf_第2页
第2页 / 共15页
VISUAL BASIC入门教程.pdf_第3页
第3页 / 共15页
VISUAL BASIC入门教程.pdf_第4页
第4页 / 共15页
VISUAL BASIC入门教程.pdf_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、Visual Basic 入 门 教 程我 们 需 要 什 么 ? 当 我 们 在 一 个 精 彩 的 游 戏 世 界 中 游 历 了 一 番 之 后 , 或 是 惊 叹 于 某 一 工 具 软 件的 小 巧 精 致 之 余 , 多 少 总 会 产 生 些 许 编 程 的 冲 动 。 编 程 吗 , 在 以 前 如 果 你 对 电 脑 还 是 一 个 门外 汉 , 那 实 在 是 一 件 可 望 而 不 可 及 的 事 情 。 如 果 运 用 基 于 DOS下 的 编 程 语 言 , 譬 如 C、 Qbasic、Pascal等 等 , 真 不 知 何 年 何 月 才 能 有 所 成 就 。编

2、程 是 需 要 天 赋 的 , 你 必 须 在 大 脑 中 对 整 个 程 序 有 一 个 清 晰 的 轮 廓 , 一 个 高 效 的 流 程 ,这 并 不 是 每 个 人 都 能 做 到 的 , 你 必 须 思 之 慎 之 , 这 也 使 编 程 变 成 一 件 最 枯 燥 无 味 的 事 情 。 但在 第 四 代 计 算 机 语 言 ( 可 视 化 编 程 ) 出 现 后 , 可 以 确 切 的 说 它 开 发 了 人 们 的 更 多 天 赋 , 并 不局 限 于 那 些 头 脑 异 常 清 晰 的 人 , 每 一 个 人 都 可 以 发 现 自 己 也 可 以 编 出 一 些 从 前 不

3、 敢 问 津 的 程序 , 想 象 力 的 充 分 发 挥 才 是 第 四 代 语 言 的 精 粹 。VisualBasic( 以 下 简 称 VB) 可 以 说 是 可 视 化 语 言 的 先 驱 了 , 而 且 它 也 是 可 视 化 程 度 最高 的 一 个 , 从 几 年 前 VB 诞 生 之 日 起 到 现 在 , 它 已 经 经 历 了 五 个 版 本 , 而 且 现 在 微 软 正 在 紧张 的 进 行 着 VB6.0的 研 制 、 测 试 , 这 么 高 的 更 新 率 , 不 外 乎 说 明 两 个 问 题 : 用 户 对 VB的 热衷 , 微 软 对 VB 的 重 视 。

4、不 可 否 认 微 软 对 市 场 的 预 测 能 力 是 极 为 高 明 的 , 而 它 强 大 的 技 术 、财 力 支 持 也 使 它 在 许 多 以 前 未 进 入 的 领 域 , 在 不 长 的 时 间 内 有 成 为 最 有 力 的 竞 争 对 手 , 如IE之 于 浏 览 器 领 域 , 帝 国 时 代 之 于 游 戏 都 是 最 好 的 例 证 。 对 于 VB 现 在 也 有 一 个 很 强 的竞 争 对 手 DDDelphi, 有 人 把 它 称 作 VB杀 手 , 这 显 然 有 偏 激 之 处 , VB 的 确 有 它 的 不 足 之 处 ,但 Delphi 又 何 尝

5、 不 是 呢 , 而 且 以 微 软 对 VB的 倾 心 , VB 的 功 能 必 然 会 越 来 越 强 大 。VB的 诞 生VB的 出 现 可 以 说 是 MicrosoftWindows的 日 渐 成 熟 的 必 然 产 物 。 MicrosoftWindows 为 程序 员 和 最 终 用 户 提 供 了 一 个 共 同 的 人 机 界 面 。 对 用 户 , Windows 提 供 了 一 个 图 形 鼠 标 的 操 作环 境 , 该 环 境 对 所 有 的 应 用 程 序 都 一 样 ; 对 于 程 序 员 , Windows 提 供 了 一 组 预 定 义 工 具 -称 之 为

6、MicrosoftWindows的 软 件 开 发 工 具 箱 ( SDK) , 该 工 具 能 使 程 序 员 建 立 一 个 与 Windows界 面 相 同 的 应 用 程 序 , 而 且 , 程 序 员 不 必 关 心 最 终 用 户 的 硬 件 配 置 情 况 。 在 这 一 开 发 环 境 中 ,程 序 员 唯 一 困 难 的 是 MicrosoftSDK提 供 了 六 百 多 个 函 数 和 与 其 一 致 的 事 件 驱 动( event-driven) 编 程 技 术 。 两 种 新 方 法 的 交 叉 使 众 多 的 程 序 员 重 新 陷 入 困 境 , 程 序 员 不

7、仅要 掌 握 程 序 驱 动 编 程 技 术 和 六 百 多 个 函 数 的 功 能 , 而 且 还 得 用 C语 言 描 述 这 些 问 题 。 因 此 一般 情 况 下 , 程 序 员 首 先 要 掌 握 C 程 序 设 计 技 术 , 而 后 再 开 始 学 习 SDK。 这 样 的 条 件 下 就 要 求在 Microsoft 多 任 务 环 境 下 出 现 一 种 操 作 方 便 , 使 用 简 单 的 新 工 具 VisualBasic由此 诞 生 。何 为 可 视英 文 Visual的 意 思 是 “ 视 觉 的 ” , “ 可 视 的 Baisc” 这 个 名 字 可 能 抽

8、象 了 点 , 但 实 际上 它 却 是 最 直 观 的 编 程 方 法 , 之 所 以 叫 做 “ 可 视 ” , 你 只 要 看 到 VB的 界 面 就 会 明 白 , 实 际上 你 无 需 编 程 , 就 可 以 完 成 许 多 步 骤 。 在 VB中 引 入 了 控 件 的 概 念 , 在 Windows 中 控 件 的 身影 无 处 不 在 , 各 种 各 样 的 按 钮 、 文 本 框 、 无 线 钮 , 都 是 控 件 的 种 类 , VB 把 这 些 控 件 模 式 化 ,并 且 每 个 控 件 都 有 若 干 属 性 用 来 控 制 控 件 的 外 观 , 工 作 方 法 。

9、 这 样 你 就 可 以 象 在 画 板 上 一 样 ,随 意 点 几 下 鼠 标 , 一 个 按 钮 就 完 成 了 , 这 些 在 以 前 的 编 程 语 言 下 是 要 经 过 相 当 复 杂 的 工 作 的 。我 的 希 望 :我 在 学 习 VB的 过 程 中 也 曾 遇 到 了 许 多 困 难 , 而 且 用 的 参 考 书 大 都 来 自 译 文 , 毕 竟 美 国人 和 中 国 人 的 表 达 方 式 有 所 不 同 。 这 也 造 成 了 理 解 上 的 困 难 , 所 以 我 想 为 什 么 我 不 能 写 一 个给 中 国 人 看 到 VB教 程 呢 , 于 是 我 这

10、么 做 了 。 也 曾 经 在 杂 志 上 发 表 过 几 篇 用 VB 制 作 小 程 序 的文 章 , 但 受 杂 志 的 限 制 ( 篇 幅 、 内 容 等 等 ) ( 我 得 听 小 编 的 ) , 总 没 有 一 个 机 会 系 统 的 介 绍 一下 VB, 造 成 了 小 小 的 遗 憾 。 不 过 , 我 自 己 的 主 页 建 好 后 , 终 于 这 个 愿 望 可 以 实 现 了 , 利 用HTML可 以 方 便 的 把 文 字 与 图 片 结 合 起 来 , 不 失 为 一 个 教 学 良 所 , 也 希 望 能 够 得 到 大 家 的 支持 。希 望 “ VB 教 程 ”

11、 能 给 你 我 一 个 互 相 学 习 的 机 会 , 如 果 你 能 从 中 获 益 那 将 是 我 最 大 的 快乐 , 那 时 你 一 定 会 发 现 编 程 比 游 戏 有 趣 得 多第 二 章 : 事 件 、 属 性 及 数 据 类 型以 后 两 章 可 能 会 比 较 枯 燥 , 但 不 可 否 认 也 很 重 要 , 所 以 为 了 学 好 VB, 我 们 一 定 要 打 好 基 础才 行 。一 、 事 件通 过 上 一 章 的 例 子 , 你 可 能 对 “ 面 向 对 象 的 编 程 ” 已 经 有 了 一 定 了 解 , 它 是 由 事 件 驱 动 的 ,对 于 不 同

12、的 对 象 , 所 能 感 应 到 的 事 件 也 会 不 同 , 譬 如 说 当 你 把 鼠 标 移 进 某 一 区 域 时 就 会 触 发MouseMove事 件 , 这 很 直 观 , 也 容 易 理 解 , 但 也 有 些 事 件 比 较 抽 象 , 下 面 我 来 对 一 般 的 事 件进 行 一 下 解 释 。窗 体 和 图 象 框 类 事 件Paint事 件 : 当 某 一 对 象 在 屏 幕 中 被 移 动 , 改 变 尺 寸 或 清 除 后 , 程 序 会 自 动 调 用 Paint 事 件 。注 意 : 当 对 象 的 AutoDraw属 性 为 True( 1) 时 ,

13、程 序 不 会 调 用 Paint事 件 。Resize事 件 : 当 对 象 的 大 小 改 变 时 触 发 Resize事 件 。Load事 件 : 仅 适 用 于 窗 体 对 象 , 当 窗 体 被 装 载 时 运 行 。Unload事 件 : 仅 适 用 于 窗 体 对 象 , 当 窗 体 被 卸 载 时 运 行 。2.当 前 光 标 ( Focus) 事 件GotFocus事 件 : 当 光 标 聚 焦 于 该 对 象 时 发 生 事 件 。LostFocus事 件 : 当 光 标 离 开 该 对 象 时 发 生 事 件 。注 意 : Focus 英 文 为 “ 焦 点 ” 、 “

14、聚 焦 ” 之 意 , 最 直 观 的 例 子 是 , 比 如 有 两 个 窗 体 , 互 相 有一 部 分 遮 盖 , 当 你 点 下 面 的 窗 体 时 , 它 就 会 全 部 显 示 出 来 , 这 时 它 处 在 被 激 活 的 状 态 , 并 且标 题 条 变 成 蓝 色 , 这 就 是 GotFocus事 件 , 而 相 反 , 另 外 一 个 窗 体 被 遮 盖 , 并 且 标 题 条 变 灰 ,称 为 LostFocus事 件 。 上 面 所 说 的 “ 光 标 ” 并 非 指 鼠 标 指 针 。3.鼠 标 操 作 事 件Click事 件 : 鼠 标 单 击 对 象 。DbCl

15、ick事 件 : 鼠 标 双 击 事 件 。MouseDown、 MouseUp属 性 : 按 下 /放 开 鼠 标 键 事 件 。MouseMove事 件 : 鼠 标 移 动 事 件 。DragDrop事 件 : 拖 放 事 件 , 相 当 于 MouseDown、 MouseMove 和 MouseUp的 组 合 。DragOver事 件 : 鼠 标 在 拖 放 过 程 中 就 会 产 生 DragOver事 件 。4.键 盘 操 作 属 性KeyDown、 KeyUp事 件 : 按 键 的 按 下 /放 开 事 件 。KeyPress事 件 : 按 键 事 件 。5.改 变 控 制 项

16、事 件Change事 件 : 当 对 象 的 内 容 发 生 改 变 时 , 触 发 Change事 件 。 最 典 型 的 例 子 是 文 本 框( TextBox) 。DropDown事 件 : 下 弹 事 件 , 仅 用 于 组 合 框 ( ComboBox) 对 象 。PathChange事 件 : 路 径 改 变 事 件 , 仅 用 于 文 件 列 表 框 ( FileBox) 对 象 。6.其 他 事 件Timer事 件 : 仅 用 于 计 时 器 , 每 隔 一 段 时 间 被 触 发 一 次 。二 、 属 性每 个 对 象 都 有 它 的 属 性 , 并 且 “ Name” 属

17、 性 是 共 有 的 , 有 了 “ Name” 属 性 才 可 以 在 程 序 中 进行 调 用 。 对 于 属 性 , 可 以 在 窗 体 的 布 局 操 作 中 完 成 , 也 可 以 在 程 序 运 行 中 改 变 , 这 取 决 你 的需 要 , 但 有 些 属 性 是 只 读 的 , 它 只 能 在 控 件 布 局 时 改 变 。 我 将 在 以 后 的 实 例 中 具 体 介 绍 各 个属 性 的 作 用 。三 、 数 据 类 型学 过 编 程 的 人 都 知 道 大 多 数 的 计 算 机 语 言 都 规 定 了 各 自 的 数 据 类 型 , VB也 不 例 外 。 其 实

18、,在 一 个 最 简 单 的 程 序 中 数 据 类 型 是 可 以 不 作 规 定 的 , 也 就 是 说 , 变 量 可 以 使 用 各 种 类 型 , 但是 在 一 个 复 杂 的 程 序 里 , 这 样 做 就 很 危 险 , 因 为 很 可 能 给 同 一 个 变 量 赋 予 了 不 同 的 类 型 , 而导 致 程 序 出 错 。 所 以 , 为 了 程 序 的 严 谨 和 便 于 查 看 , 正 确 的 定 义 数 据 类 型 是 必 要 的 。 定 义 数据 的 另 一 个 原 因 是 , 不 同 的 数 据 占 用 不 同 的 内 存 数 量 , 譬 如 整 型 ( Inte

19、rger) 数 据 占 2字 节 ,而 长 整 型 数 据 占 4个 字 节 , 定 义 合 适 的 数 据 类 型 , 不 管 你 相 信 不 相 信 , 它 可 以 节 省 内 存 !VB常 用 的 数 据 类 型 有 : 整 型 ( Integer, 表 示 -32768至 32767之 间 的 整 数 ) 、 长 整 型 ( Long,表 示 -2,147,483,648至 2,147,483,647之 间 的 整 数 ) 、 实 型 ( Single, 表 示 -3.37E 38至 3.37E38之 间 的 实 数 ) 、 双 精 度 实 型 ( Double, 表 示 -1.67E

20、 308至 1.67E 308之 间 的 实 数 ) , 字 符( String, 每 个 字 符 占 一 字 节 , 可 以 储 存 0 65,535个 字 符 ) , 布 尔 ( Boolean, 只 有 两 个 值True/-1, 或 False/0) 。数 据 类 型 的 定 义 方 法 :定 义 变 量 最 简 单 的 方 法 是 用 “ Dim” 关 键 字 , 它 的 语 法 :Dim【 变 量 名 】 As【 数 据 类 型 】如 : DimIndexAsInteger也 可 以 在 一 行 中 定 义 多 个 变 量 , 如 :DimIndexAsInteger,DimNum

21、berAsLong把 多 个 变 量 定 义 成 同 一 类 型 可 以 写 成 :DimIndex,NumberAsInteger更 可 以 在 定 义 时 进 行 初 赋 值 :DimIndex=3有 时 为 了 简 便 , 也 以 符 号 进 行 简 单 的 定 义 , 作 用 是 和 上 面 一 样 的 。 整 型 可 以 用 “ ” 代 替 , 长整 型 可 以 用 “ &” 代 替 , 实 型 可 以 用 “ !” , 双 精 度 实 型 可 以 用 “ #” 定 义 , 如 刚 才 的 第 一 个例 子 可 以 写 成 :DimIndex等 价 于 DimIndexAsInteg

22、er对 于 常 量 的 定 义 用 Const定 义 , 如 : ConstCOLOR=255。为 了 在 程 序 中 便 于 查 阅 , 我 们 对 变 量 和 常 量 的 写 法 进 行 规 定 , 变 量 一 般 用 小 写 方 式 , 常 量 则全 部 大 写 。注 意 : 使 用 常 量 的 好 处 , 对 于 程 序 中 经 常 出 现 的 数 值 , 应 设 常 量 等 于 它 , 这 样 一 是 书 写 方 便 ,其 二 , 如 果 要 改 变 该 数 值 , 只 需 改 变 定 义 常 量 的 语 句 值 , 而 不 需 改 变 每 个 语 句 , 提 高 了 效 率 。数

23、组 的 定 义 类 似 于 变 量 定 义 , 所 不 同 的 是 数 组 需 要 指 定 数 组 中 的 元 素 个 数 , 例 如 :DimIntegerArray(99)AsInteger这 个 数 组 中 包 含 100个 元 素 , 脚 标 从 0到 99。也 可 以 指 定 脚 标 的 起 始 值 , 例 如 :DimIntegerArray(2to10)AsInteger这 个 数 组 含 有 九 个 元 素 , 脚 标 从 2到 10。还 可 以 定 义 多 维 数 组 :DimThreeD(4,2to5,3to6)AsInteger上 例 定 义 了 一 个 3d/33.sh

24、tmltarget=_blankclass=article三 维 数 组 (4 4 4)。记 录 的 定 义记 录 定 义 是 把 控 制 权 交 给 用 户 的 方 法 , 它 让 用 户 可 以 定 义 自 己 的 数 据 类 型 , 它 使 用 关 键 字“ Type” , 方 法 是 :Type【 数 据 类 型 标 识 符 】AsAsAsEndType例 如 , 定 义 一 个 地 址 数 据 :TypeAddressStreetAsStringZipCodeAsStringPhoneAsStringEndType这 个 地 址 数 据 里 包 括 三 个 属 性 , 街 区 、 邮

25、 政 编 码 和 电 话 , 可 以 把 某 数 据 定 义 成 此 类 型 :DimMyHomeAsAddress要 调 用 或 改 变 “ MyHome” 的 值 时 , 类 似 于 对 对 象 的 属 性 的 操 作 :变 量 名 .域 名 “ ”为 了 简 化 书 写 重 复 的 部 分 ,可 以 用 关 键 字 “ With” :WithMyHome.Street=” 阜 成 路 ”.ZipCode=” 100037”.Phone=” 12345678”EndWith第 三 章 : Visual Basic语 言本 章 提 要 :VB语 法 与 Basic的 异 同注 释 语 句长

26、语 句 的 分 行条 件 语 句循 环 语 句运 算 操 作数 据 定 义 与 赋 值函 数 和 过 程一 、 VB与 BasicVB之 所 以 叫 做 “ VisualBasic” 就 是 因 为 它 使 用 了 Basic语 言 作 为 代 码 , 所 以 它 们 之 间 有 着千 丝 万 缕 的 关 系 , 如 果 学 过 Basic的 话 , 看 到 VB 的 程 序 结 构 会 感 到 很 亲 切 。 但 VB 作 为 新 生物 , 也 超 越 了 Basic的 限 制 , 有 了 许 多 自 己 的 特 点 :VB建 立 了 一 种 新 的 变 量 类 型 DD货 币 型 变 量

27、, 通 过 使 用 仅 带 有 二 位 小 数 的 货 币 变 量 , 就 能 避免 因 使 用 实 型 变 量 而 带 来 的 数 值 积 累 误 差 问 题 。VB在 调 用 函 数 ( Function) 时 , 必 须 在 函 数 名 后 跟 一 对 括 号 。VB对 白 兰 地 使 用 范 围 重 新 做 了 规 范 , 在 Basic 里 把 隐 含 变 量 都 当 作 全 局 变 量 , 而 在 VB 里 对隐 含 变 量 都 当 作 局 部 变 量 。VB里 的 说 明 语 句 ( Declare) , 仅 支 持 动 态 链 结 库 ( DLL) 的 子 程 序 和 无 变

28、量 函 数 。使 用 数 组 , 必 须 事 先 用 Dim或 Redim 进 行 定 义 。二 、 注 释 语 句在 使 用 注 释 语 句 之 前 必 须 先 了 解 注 释 的 作 用 , 注 释 不 仅 仅 是 对 程 序 的 解 释 , 有 时 它 对 于 程 序的 调 试 也 非 常 有 用 , 譬 如 说 可 以 利 用 注 释 屏 蔽 一 条 语 句 以 观 察 变 化 , 发 现 问 题 和 错 误 。 以 后注 释 语 句 将 是 我 们 在 编 程 里 最 经 常 用 到 的 语 句 之 一 。在 VB 里 , 注 释 语 句 有 两 种 , 一 种 是 用 “ Rem”

29、 关 键 字 , 这 跟 DOS里 的 批 处 理 文 件 的 用 法 一 样 ,还 有 一 种 是 利 用 单 引 号 “ ” , 例 如 : DimaAsString与RemDimaAsString的 作 用 是 一 致 的 。三 、 长 语 句 的 分 行在 比 较 早 的 版 本 中 , 因 为 没 有 象 C等 语 言 用 “ ; ” 隔 开 语 句 与 语 句 , VB的 语 句 是 必 须 写 在一 行 里 的 , 不 过 后 来 版 本 的 VB里 如 许 用 分 行 符 “ _” 把 一 个 长 语 句 分 成 若 干 行 来 存 放 。四 、 条 件 语 句如 果 你 学

30、过 任 何 一 种 编 程 的 话 , 都 会 知 道 在 程 序 里 控 制 其 流 程 的 有 两 种 语 句 , 条 件 与 循 环 ,VB自 然 也 不 例 外 , 其 实 不 管 哪 种 语 言 , 条 件 和 循 环 的 样 子 都 差 不 多 , 只 不 过 各 有 各 的 规 矩罢 了 。条 件 语 句 里 , 我 们 先 来 学 习 “ If Then ” 语 句 。它 的 一 般 语 法 是 :IfThen EndIf与 C 语 言 不 同 , VB的 条 件 语 句 更 符 合 英 语 的 语 法 , 如 果 Then后 面 所 跟 的 语 句 只 有 一 条 , 可以

31、写 成 :IfThen而 不 用 EndIf。有 时 我 们 还 会 用 到IfThenElseEndIf更 可 以 在 Else 里 在 嵌 套 If 语 句 , 如 :IfThenElseIfElseEndIf所 有 这 些 可 以 用 一 个 表 格 表 示 :条 件 1TrueFalse语句1条 件 2TrueFalse语句2条 件 3TrueFalse 条 件 NTrueFalse语 句 N语 句 N 1用 了 过 多 的 Else后 你 会 感 到 很 不 方 便 , 而 且 程 序 结 构 也 不 清 晰 , 所 以 大 多 数 的 语 言 还 有Select语 句 帮 助 解

32、决 这 个 问 题 。VB里 的 Select语 句 的 格 式 是 这 样 的 :SelectCaseCase Case Case CaseElse EndSelect例 如 :SelectCaseaCase1Print“ a=1”Case2Print“ a=2”CaseElsePrint“ adoesnotequalto1or2.”EndSelect四 、 循 环 语 句循 环 结 构 是 计 算 机 语 言 里 一 种 重 要 的 结 构 , 它 的 应 用 广 泛 , 最 简 单 的 例 子 是 累 加 器 的 作 用 ,还 可 以 用 于 穷 举 法 , 更 直 观 的 例 子 是

33、把 某 件 事 重 复 指 定 的 次 数 , 这 样 就 不 用 把 要 重 复 的 语 句输 入 多 次 , 而 通 过 循 环 结 构 完 成 , 非 常 方 便 。C语 言 里 有 一 个 “ for” 循 环 语 句 , VB 里 也 有 “ For” 关 键 字 , 作 用 也 差 不 多 , 只 是 VB的“ For” 语 句 更 容 易 理 解 。 它 的 格 式 是 :For=ToStep Next在 默 认 情 况 下 , Step被 设 为 “ 1” , 可 以 省 略 , Step也 可 以 设 为 负 值 , 例 如 :Dima=0ForI=1To10a=a INex

34、tI这 是 一 个 最 简 单 的 累 加 器 的 例 子 , 把 1到 10累 加 在 一 起 , 然 后 赋 值 给 “ a” 这 样 的 效 果 和 上 面是 一 样 的 , 只 不 过 是 倒 着 加 罢 了 , 请 看 :Dima=0ForI=10To1StepC1a=a INextIWhile语 句 也 是 一 个 很 常 用 的 循 环 语 句 , 它 的 形 式 很 多 。DoWhile Loop语 句While Wend语 句Do LoopWhileWhile后 面 都 跟 逻 辑 条 件 判 断 , “ DoWhile Loop 语 句 ” 和 “ While Wend语

35、句 ” 作 用相 似 , 都 是 先 判 断 While后 面 的 条 件 是 否 为 “ 真 ” , 如 果 为 “ 真 ” 则 执 行 里 面 的 语 句 , 如 果为 “ 假 ” , 则 退 出 循 环 , 循 环 直 至 条 件 为 “ 假 ” 终 止 。 “ Do LoopWhile” 与 前 两 者 的 区别 在 于 , 它 不 管 条 件 的 真 假 , 都 会 先 执 行 “ Do” 后 面 的 语 句 , 也 就 是 说 , 它 至 少 执 行 语 句 一次 。与 While 用 法 相 似 的 还 有 Until 语 句 , 它 是 直 至 条 件 为 真 则 终 止 循

36、环 , 句 式 把 While 上 述 三个 语 句 的 While换 成 Until 即 可 , 但 是 因 为 容 易 记 混 , 所 以 我 建 议 只 用 While 即 可 。 Until可 以 相 当 于 WhileNot。For循 环 和 Whlie 循 环 应 当 根 据 适 当 的 环 境 使 用 , 它 们 有 时 也 可 替 换 。五 、 运 算 操 作数 学 运 算 : 加 法 运 算 , 也 适 合 于 字 符 串 的 之 间 的 合 并 运 算 。 : 加 法 运 算 。*: 乘 法 运 算 。/: 除 法 运 算 。: 整 除 运 算 。Mod: 求 余 运 算

37、。 例 如 : aModb表 示 a 被 b 整 除 以 后 的 余 数 。: 幂 运 算 。 AB表 示 以 A为 底 的 B次 方 。关 系 运 算关 系 运 算 也 称 比 较 运 算 , 它 表 示 不 等 式 的 真 或 假 , VB 共 提 供 六 种 运 算 符 , 分 别 是 =( 等 于 ) , ( 大 于 ) , =( 大 于 等 于 ) , ( 不 等 于 ) 。逻 辑 运 算逻 辑 运 算 是 对 真 或 假 的 运 算 , 我 将 列 表 说 明 :ABNotA非And与Or或Xor异 或Eqv相 等Imp蕴 含TTFTTFTTTFFFTTFFFTTFTTFTFFTF

38、FFTTTDDTrueFDDFalse六 、 数 据 与 定 义本 标 题 的 内 容 已 经 在 上 一 章 向 大 家 详 述 过 , 在 这 里 就 不 再 重 复 。七 、 函 数 与 过 程函 数 与 过 程 有 许 多 相 似 的 地 方 , 它 们 之 间 最 大 也 是 最 本 质 的 区 别 就 在 于 , 函 数 有 一 个 返 回 值 ,而 过 程 只 是 执 行 一 系 列 动 作 , 所 以 可 以 简 单 的 把 函 数 理 解 成 为 一 个 变 量 , 而 VB 中 的 每 个 事件 都 是 一 个 过 程 , 比 如 Command1_Click()就 是 一

39、 个 过 程 。因 为 在 程 序 设 计 中 经 常 会 有 重 复 的 地 方 , 所 以 把 它 做 成 一 个 函 数 或 一 个 过 程 , 在 使 用 时 进 行调 用 , 可 以 节 省 大 量 的 输 入 代 码 的 时 间 , 而 且 使 用 函 数 和 过 程 也 便 于 程 序 的 结 构 化 和 修 改 查看 。 函 数 和 过 程 都 可 以 有 参 数 , 也 可 以 没 有 参 数 。第 四 章 按 钮 ( 一 )从 本 章 开 始 我 们 将 正 式 进 入 VB的 编 程 世 界 , 但 这 还 仅 仅 是 个 开 端 , 要 编 出 功 能 强 大 的软 件

40、 , 还 要 学 很 多 东 西 , 那 就 要 看 以 后 的 VB高 级 教 程 了 , 我 也 得 努 力 学 啊 !按 钮 是 我 们 在 Windows操 作 见 到 最 多 的 控 件 , 它 们 有 着 各 种 各 样 的 功 能 : “ 确 认 ” 、 “ 取消 ” 、 “ 下 一 步 ” 等 等 , 这 些 都 是 按 钮 的 表 现 , 另 外 还 有 很 多 图 形 话 的 按 钮 , 其 实 它 们 并 没什 么 不 同 , 所 有 的 按 钮 都 是 通 过 单 击 ( click) 事 件 实 现 的 , 只 不 过 是 在 外 表 不 同 罢 了 。 下面 就 让

41、 我 们 建 立 一 个 最 简 单 的 按 钮 , 双 击 工 具 箱 的 CommandButton, 将 在 窗 体 上 建 立 一 个 形如 图 4 1的 按 钮 , 它 的 缺 省 名 ( Name属 性 ) 为 Command1, 我 们 可 以 把 它 改 名 为 cmdExit,把 Caption属 性 设 为 “ 退 出 ” , 然 后 双 击 , 按 钮 填 写 代 码 :PrivateSubcmdExit_Click()UnloadMeEndSub按 下 F5或 者 工 具 条 上 的 播 放 按 钮 , 运 行 程 序 。 图 4 2当 你 按 下 退 出 按 钮 的

42、时 候 , 就 会自 动 退 出 程 序 , 原 因 是 当 你 单 击 按 钮 时 激 活 了 它 的 Click事 件 , 执 行 “ UnloadMe” 语 句 , 使得 窗 体 被 卸 载 。上 面 举 了 一 个 比 较 简 单 的 例 子 , 下 面 的 例 子 稍 微 复 杂 些 :新 建 窗 体 , 控 件 布 局 如 图 4 3所 示 , 包 括 一 个 List 控 件 , 一 个 Text控 件 和 两 个 按 钮( Command1和 Command2) , ( 比 较 简 单 的 程 序 我 们 都 采 用 缺 省 名 ) , 对 它 们 属 性 做 如 下 修改 :

43、List1Caption “ 请 输 入 你 的 名 字 ”Text1Text “ ” ( 空 字 符 串 )Button1Caption “ 复 原 ”Enabled FalseButton2Caption=“ 清 除 ”把 使 用 Button1的 Enabled属 性 设 为 False( 假 ) , 是 使 程 序 在 初 始 时 , 无 法 单 击Command1。 按 F5, 运 行 程 序 , 图 4 4, 复 原 按 钮 成 为 灰 色 , 不 可 选 。当 然 现 在 程 序 还 什 么 也 不 能 做 , 下 面 我 们 在 程 序 中 添 加 代 码 :首 先 在 Gen

44、eral里 声 明 全 局 变 量 :DimStoreStringAsString用 来 储 存 字 符 串 注 意 : 为 什 么 用 全 局 变 量 ?VB里 每 一 个 小 过 程 都 相 当 于 一 个 程 序 , 程 序 里 的 变 量 称 为 局 部 变 量 , 是 只 能 在 程 序 内部 使 用 的 , 而 当 程 序 调 用 结 束 后 , 由 于 从 内 存 中 被 清 除 , 所 以 变 量 储 存 的 值 也 就 消 失 了 , 这里 的 全 局 变 量 是 用 来 在 过 程 中 传 递 字 符 串 。接 着 填 写 以 下 代 码 :PrivateSubComman

45、d1_Click()Text1.Text=StoreStringCommand1.Enabled=FalseEndSubPrivateSubCommand2_Click()StoreString=Text1.TextText1.Text=“清 除Command1.Enabled=TrueEndSub运 行 程 序 , 如 图 4 5。 按 下 “ 清 除 ” , 文 本 框 被 清 除 , 按 下 “ 复 原 ” , 文 本 有 被 恢 复 ,许 多 程 序 中 的 Undo/Redo就 是 利 用 这 个 原 理 实 现 的 , 现 在 知 道 为 什 么 内 存 越 多 越 好 了 吧 。

46、我 们 在 把 程 序 修 改 一 下 , 把 Button2删 除 , Button1的 Enabled属 性 改 为 True, Caption改 为 “ 清 除 ” , 填 写 代 码 :PrivateSubCommand1_Click()IfCommand1.Caption=“清 除 “ThenStoreString=Text1.TextText1.Text=“清 除Command1.Caption=“复 原 “ElseText1.Text=StoreStringCommand1.Caption=“清 除 “EndIfEndSub同 样 可 以 上 面 的 功 能 , 但 是 却 少

47、用 了 一 个 控 件 , 控 件 使 用 少 的 程 序 启 动 会 快 些 。下 面 的 例 子 要 更 加 复 杂 些 , 大 家 一 定 都 用 过 Windows附 件 中 的 计 算 器 , 它 是 一 个 标 准 的科 学 计 算 器 , 利 用 VB我 们 也 可 以 做 到 , 只 是 没 有 那 么 复 杂 , 四 则 运 算 而 已 。先 建 立 一 个 新 的 项 目 文 件 , 里 面 包 含 一 个 Form1的 窗 体 。 然 后 , 添 加 控 件 , 包 括 一 个 Text框 ( Text1) , 和 17个 按 钮 , 这 17个 按 钮 使 用 的 名

48、称 都 是 Command1, 只 是 Index 属 性 不 同 ,就 好 象 一 个 数 组 , 创 立 一 组 按 钮 的 方 法 是 , 先 在 窗 体 上 建 立 一 个 按 钮 ( Command1) , 然 后 在Command1上 击 鼠 标 右 键 , 选 择 复 制 ( Copy) , 然 后 在 窗 体 上 任 意 部 位 击 右 键 , 选 择 粘 贴 ( Paste) ,系 统 会 提 示 是 否 创 建 控 件 组 , 选 择 “ 是 ” , 重 复 上 面 步 骤 , 直 至 创 立 17个 按 钮 为 止 。 各 控 件属 性 如 下 表 :Text1BackC

49、olor &H00C0FFFF&Text “ 0.”Command1Index0DD16Index0DD9Caption=“ 0” “ 9”Index10Caption=“ .”Index11Caption=“ =”Index12Caption=“ ”Index13Caption=“ -”Index14Caption=“ ”Index15Caption=“ ”Index16Caption=“ 清 除 ”如 果 想 改 变 一 些 其 他 的 属 性 , 比 如 字 体 , 可 以 自 己 定 义 一 下 Font属 性 , 如 果 相 对 多 个 控 件的 共 同 属 性 进 行 改 变 , 可 以 在 窗 体 上 按 下 鼠 标 , 拖 动 , 把 多 个 控 件 一 起 选 定 , 然 后 对 它 们 的共 同 属 性 进 行 修 改 。别 看 这 个 东 西 小 , 还 费 了 近 我 两 个 小 时 呢 , 不 觉 大 叹 手 生 , 里 面 也 有 些 地 方 很 绕 弯 子 ,我 尽 量 解 释 清 楚 。在 编

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报