资源描述
大 学 计 算 机 基 础 教 程 TaiYuan University of TechnologyVB编 程 入 门Visual Basic 程 序 设 计 教 程 Visual Basic程 序 设 计 教 程2 本 章 将 介 绍 有 关 VB程 序 的 构 成 和 数 据 类 型 以及 变 量 的 定 义 和 使 用 、 表 达 式 以 及 基 本 的 输 入 输出 操 作 。 这 些 知 识 是 编 程 的 基 础 。 我 们 将 通 过 简单 示 例 的 分 析 , 帮 助 理 解 如 何 进 行 VB编 程 。 Visual Basic程 序 设 计 教 程3本 章 主 要 内 容 :确 定 数 据 的 性 质 : 数 据 类 型两 种 数 据 表 达 : 常 量 和 变 量算 术 运 算 符 和 表 达 式VB编 程 的 开 始 : 使 用 窗 体赋 值 和 输 入 输 出 Visual Basic程 序 设 计 教 程4 2.1 概 述 Visual Basic程 序 设 计 教 程51 加 法 器 界 面 设 计 2.2 一 个 简 单 的 加 法 器 程 序 Visual Basic程 序 设 计 教 程6对 象 列 表 框 过 程 列 表 框过 程 分 界 线程 序 员 在 此 编 写 代 码光 标标 题 Visual Basic程 序 设 计 教 程7Private Sub CmdAdd_Click() 计 算 ” 按 钮 代 码 Dim Temp As Long TxtNum1.Text = TxtNum2.Text = TxtSum.Text = TxtNum1.Text = InputBox (请 输 入 第 一 个 数 ) TxtNum2.Text = InputBox(请 输 入 第 二 个 数 ) Temp = Val(TxtNum1) + Val(TxtNum2) TxtSum.Text = TempEnd SubPrivate Sub CmdExit_Click() “退 出 ” 按 钮 代 码 FrmAdder1.Hide MsgBox (加 法 器 程 序 运 行 结 束 , 谢 谢 使 用 ) EndEnd Sub Visual Basic程 序 设 计 教 程8 数 据 是 程 序 处 理 的 对 象 。 为 了 更 好 地 处 理 各种 各 样 的 数 据 , VB定 义 了 多 种 数 据 类 型 , 数 据类 型 定 义 了 值 的 范 围 并 确 定 了 它 能 够 进 行 的 操作 。 Visual Basic程 序 设 计 教 程9 整 数 : 整 型 /长 整 型字 节 型浮 点 型 : 单 /双 精 度货 币 型数 值 型 数 据 类 型 字 符 型逻 辑 型日 期 型对 象 型变 体 型 Visual Basic程 序 设 计 教 程10 1. 字 节 型 (Byte) 字 节 型 数 可 以 表 示 无 符 号 的 整 数 , 0 255 2. 整 型 (Integer)和 长 整 型 (Long) 不 带 小 数 部 分 的 数 , 表 示 正 整 数 、 负 整 数 和 零 整 型 数 : -32768 32767 98、 98 长 整 型 数 : -2147483648 2147483647 45678、 45678R,”面 积 ” ;Area,”周 长 ” ;Perimeter输 出半 径 、 面 积 。 周 长End Sub Visual Basic程 序 设 计 教 程632.7.2 使 用 输 入 对 话 框 InputBox函 数【 例 2-4】 计 算 半 径 为 R的 圆 面 积 和 周 长 , 半 径 值 由 键 盘输 入 。Private Sub Form_Click() Const PI = 3.141526 Dim R As Integer, Area As Single, Perimeter As Single R = Val(InputBox(请 输 入 圆 的 半 径 : , 输 入 ) Area = PI * R * R Perimeter = 2 * PI * R Print 半 径 ; R, 面 积 ; Area, 周 长 ; PerimeterEnd Sub 这 个 例 子 中 使 用 了 InputBox函 数 产 生 输 入 对 话 框 。 Visual Basic程 序 设 计 教 程641 输 入 对 话 框 的 使 用InputBox函 数 的 使 用 格 式 如 下 : InputBox( 提 示 , 标 题 , 默 认 值 , xpos,ypox)它 们 的 含 义 如 下 :( 1) 提 示 信 息 。 这 是 InputBox对 话 框 所 必 须 的 信息 , 也 可 以 使 用 空 文 本 , 即 “ ” 。( 2) 标 题 。 这 是 在 对 话 框 窗 口 标 题 栏 显 示 的 内 容 。可 设 置 , 也 可 以 没 有 标 题 。 Visual Basic程 序 设 计 教 程65( 3) 默 认 值 。 在 输 入 框 中 的 默 认 输 入 。 系 统 默 认为 空 , 可 选 。( 4) xpos和 ypos为 对 话 框 的 左 侧 与 屏 幕 左 边 的 距离 和 上 边 与 屏 幕 顶 部 的 距 离 值 。 可 选 。 Visual Basic程 序 设 计 教 程662 在 提 示 中 使 用 多 行 文 本 如 果 提 示 信 息 比 较 多 , 可 以 使 用 ASCII控 制 符 回 车Chr( 13) 和 换 行 符 Chr( 10) 产 生 另 起 一 行 。 例 如 : 提 示 信 息 为 “ 请 输 入 圆 的 半 径 ” + Chr( 13)+ Chr( 10) +“使 用 正 整 数 ” , 产 生 如 图 效 果 Visual Basic程 序 设 计 教 程673 使 用 转 换 函 数 InputBox函 数 接 受 的 是 文 本 , 也 就 是 字 符 型 数据 , 在 程 序 中 根 据 变 量 类 型 不 同 , 可 以 使 用 转 换 函数 。 如 : R = Val(InputBox(请 输 入 圆 的 半 径 : , 输 入 )这 里 的 Val就 是 转 换 函 数 , 将 文 本 类 型 的 数 据 转 换 为整 型 数 以 便 参 加 运 算 。 VB提 供 了 在 不 同 类 型 数 据 之 间 的 转 换 。 Visual Basic程 序 设 计 教 程682.7.3 使 用 Print方 法 输 出 数 据 使 用 Print在 对 象 中 显 示 ( 打 印 ) 输 出 文 本 。 使 用 格 式 如 下 :对 象 名 .Print 表 达 式 ,表 达 式 1 对 象 名 一 般 情 况 下 , Print输 出 到 窗 体 或 者 图 片 框 。 在本 窗 体 中 输 出 , 可 以 缺 省 对 象 名 。 Visual Basic程 序 设 计 教 程692 表 达 式 Print方 法 支 持 多 个 表 达 式 的 输 出 , 可 输 出 数字 、 文 字 字 符 、 日 期 、 逻 辑 值 等 。 如 果 Print后面 没 有 任 何 表 达 式 , 则 输 出 空 行 ( 在 显 示 效 果 上相 当 于 回 车 换 行 ) 。 Visual Basic程 序 设 计 教 程703 输 出 格 式多 个 表 达 式 输 出 , 可 以 使 用 分 号 和 逗 号 分 隔 。( 1) 逗 号 分 隔 ( 标 准 格 式 输 出 ) 。 逗 号 后 的 下一 个 表 达 式 按 照 14个 字 符 的 空 间 分 开 显 示 。 实 际分 隔 位 置 还 与 所 在 输 出 行 的 宽 度 和 分 隔 的 数 目 有关 。( 2) 分 号 分 隔 ( 紧 凑 格 式 输 出 ) 。 后 一 个 表 达式 的 值 接 着 前 一 个 表 达 式 的 输 出 。 Visual Basic程 序 设 计 教 程71( 3) 在 Print语 句 最 后 使 用 逗 号 或 分 号 结 束 , 不换 行 , 下 一 个 Print接 着 按 格 式 输 出 。( 4) 使 用 Spc()和 Tab()函 数 , 前 者 控 制 插 入 空格 , 后 者 确 定 列 位 置 Visual Basic程 序 设 计 教 程72例 :Private Sub Form_click() Me.FontSize = 16 Print 空 行 Print A=; 1, B=; 2 Print 1, 2; 3, 4 Print A; Spc(4); B Print Tab(10); B Print 1234567890End Sub Visual Basic程 序 设 计 教 程73 2.7.4 使 用 消 息 对 话 框 MsgBox函 数MsgBox函 数 提 供 了 一 个 显 示 应 用 程 序 运 行 信 息 的标 准 途 径 , 如 图 所 示 : MsgBox的 格 式 如 下 :变 量 名 = MsgBox( 提 示 , 对 话 框 类 型 , 对 话 框标 题 ) Visual Basic程 序 设 计 教 程74( 1) 使 用 形 式 : MsgBox有 两 种 使 用 形 式 , 注 意 区 分 , 如 :A = MsgBox(您 确 定 要 退 出 吗 ? , vbOKCancel + vbDefaultButton2, 退 出 )和 MsgBox 您 确 定 要 退 出 吗 ? , vbOKCancel + vbDefaultButton2, 退 出 “ 格 式 1是 具 有 返 回 值 的 使 用 , 程 序 根 据 用 户 的不 同 选 择 把 选 择 结 果 赋 值 给 变 量 A。 格 式 2没 有 返回 值 。 Visual Basic程 序 设 计 教 程75( 2) 提 示 必 选 参 数 项 。 如 果 显 示 多 行 , 可 使 用 Chr(13)+ Chr(10) 。( 3) 对 话 框 标 题 在 对 话 框 标 题 栏 显 示 的 信 息 文 本 。 Visual Basic程 序 设 计 教 程76( 4) 对 话 框 类 型 类 型 参 数 由 三 部 分 组 成 , 分 别 确 定 对 话 框 中的 按 钮 形 式 、 默 认 的 焦 点 在 哪 一 个 按 钮 上 和 按 钮使 用 的 图 标 。 把 按 钮 形 式 、 焦 点 选 择 、 图 标 三 组参 数 中 各 选 一 个 进 行 组 合 , 或 直 接 把 它 们 对 应 的符 号 常 量 进 行 相 加 确 定 对 话 框 类 型 值 Visual Basic程 序 设 计 教 程77数 值 VB符 号 常 量 描 述0 vbOkOnly 按 钮形 式 只 使 用 “ 确 定 ” ( Ok) 按 钮1 vbOkCancel 使 用 “ 确 定 ” “ 取 消 ” ( Cancel) 两 个 按 钮2 vbAbortRetryIgnore “终 止 ” “ 重 试 ” “ 忽 略 ” 三 个 按 钮3 vbYesNoCancel 使 用 “ 是 ” “ 否 ” “ 取 消 ” 三 个 按 钮4 vbYesNo 使 用 “ 是 ” “ 否 ” 两 个 按 钮5 vbRetryCancel 使 用 “ 重 试 ” “ 退 出 ” 两 个 按 钮 Visual Basic程 序 设 计 教 程78 vbCritical vbInformation64 vbExclamation48 vbQuestion32 图 标16 第 三 个 按 钮vbDefaultButton3512 第 二 个 按 钮vbDefaultButton2256 第 一 个 按 钮焦 点选 择vbDefaultButton10 Visual Basic程 序 设 计 教 程79( 5) 返 回 值 使 用 一 个 变 量 保 存 MsgBox函 数 返 回 值 ,返 回 值 的 符 号 常 量 和 有 关 描 述 如 表 所 示 。 Visual Basic程 序 设 计 教 程80 值 符 号 常 量 所 按 的 按 钮1 vbOk “确 定 ” 按 钮2 vbCancel “取 消 ” 按 钮3 vbAbort “退 出 ” 按 钮4 vbRetry “重 试 ” 按 钮5 vbIngore “忽 略 ” 按 钮6 vbYes “是 ” 按 钮7 vbNo “否 ” 按 钮 Visual Basic程 序 设 计 教 程81( 6) 省 略 参 数 项 如 果 只 给 出 提 示 , 系 统 默 认 为 对 话 框 类 型 参 数值 为 0, 没 有 对 话 框 标 题 。 如 果 要 省 略 某 一 个 参 数项 , 需 要 加 上 逗 号 分 隔 符 。 例 如 : A = MsgBox ( “您 确 定 要 退 出 吗 ? ” , , “退 出 ” ) Visual Basic程 序 设 计 教 程82【 例 2-5】 在 窗 体 上 设 置 三 个 命 令 按 钮 , 分 别 为 “ 放 大窗 口 ” “ 缩 小 窗 口 ” 和 “ 结 束 程 序 ” 。 点 击 “ 放 大 窗口 ” “ 缩 小 窗 口 ” 窗 体 相 应 进 行 放 大 和 缩 小 操 作 , 并在 窗 体 上 显 示 操 作 后 窗 口 的 宽 度 和 高 度 , 点 击 “ 结 束程 序 ” 则 程 序 结 束 运 行 退 出 。 Visual Basic程 序 设 计 教 程83【 例 2-6】 在 窗 体 上 放 置 一 个 标 签 显 示 文 本 , 单 击 窗 体 空白 处 输 入 字 体 和 字 号 使 显 示 的 文 本 随 之 变 化 。 使 用 三 个命 令 按 钮 “ 隐 藏 显 示 ” “ 恢 复 显 示 ” 和 “ 程 序 结 束 ” 。其 中 “ 隐 藏 显 示 ” 有 效 时 “ 恢 复 显 示 ” 处 于 无 效 状 态 ,反 之 亦 然 。
展开阅读全文