说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

改进VB的驱动器列表框

HTML文档下载 WORD文档下载 PDF文档下载
改进VB的驱动器列表框

信 阳 师 范 学 院 计 算 机 系
董 建 军

V B 是 一 个 高 效 快 捷 的 WINDOWS 应 用 程 序 开 发 工 具, 倍 受 人 们 青 睐。 然 而, V B 也 有 其 局 限 性, 部 分 控 件 不 够 完 善, 许 多 事 件 和 属 性 没 有 提 供, 又 加 上 V B 自 身 的 封 闭 性( 不 允 许 自 我 创 建 对 象), 使 得 我 们 很 难 开 发 出 具 有 一 定 特 色 的 程 序, 如 V B 的 驱 动 器 列 表 框 便 是 一 例。
在 要 求 不 高 的 情 况 下, V B 的 驱 动 器 列 表 框 能 很 好 的 胜 任 其 工 作。 在 使 用 它 时 候, 一 般 在 其 CHANGE 事 件 中 加 入 以 下 代 码, 用 以 改 变 当 前 路 径, 从 而 带 动 目 录 列 表 框: DIR.PATH= DRIVE1.DRIVE
其 中 DIR1、DRIVE1 分 别 是 驱 动 器 列 表 框 和 目 录 列 表 框 的 名 字(NAME 属 性, 以 下 同)。 这 样, 在 运 行 时 只 要 从 驱 动 器 列 表 框 中 任 选 一 项( A:、 B:、 C:、...), 目 录 列 表 框 中 的 内 容 便 会 跟 着 变 动。
然 而, 事 情 远 不 象 它 显 示 的 那 么 简 单, 在 程 序 运 行 时 可 能 会 出 现 以 下 情 况:

⑴、 如 果 驱 动 器 中 没 有 磁 盘 便 会 产 生 运 行 时 错 误, 从 而 导 致 整 个 程 序 运 行 终 止, 这 是 我 们 所 不 想 见 到 的。 这 时 有 必 要 在 CHANGE 事 件 中 加 入 出 错 处 理:
SUB DRIVE1.CHANGE ()
DIM BACK%
ON ERROR GOTO ERRHANDL
DIR1.PATH=DRIVE1.DRIVE
EXIT SUB
ERRHANDL:
BEEP
'显示惊叹号图标和 RETRY ,CANCLE按钮
BACK=BMSGBOX (ERROR(ERR),5 OR 48,"错误")
IF BACK=4 THEN '按下 RETRY按钮
RESUME
ELSE
RESUME NEXT
ENDIF
EXIT SUB
END SUB
在 这 种 情 况 下, 当 错 的 时 候, 往 驱 动 器 中 插 入 磁 盘 并 按 下 REYRY 按 钮, 程 序 得 以 正 确 运 行; 若 按 下 CANCEL 按 钮 就 会 出 现 以 下 问 题:

目 录 列 表 框 的 当 前 内 容 没 有 发 生 改 变, 而 驱 动 器 列 表 框 的 内 容 则 为 刚 才 选 中 的 驱 动 器, 也 即 驱 动 器 列 表 框 和 目 录 列 表 框 的 内 容 没 有 指 向 同 一 磁 盘, 这 当 然 是 我 们 所 不 能 容 忍 的。 原 因 在 于 这 个 出 错 处 理 过 程 是 加 在 CHANGE 事 件 中 的, 而 CHANGE 事 件 是 在 当 前 驱 动 器 发 生 变 化 以 后 才 产 生 的。 如 果 驱 动 器 列 表 框 有 CLICK 事 件 的 话, 那 么 问 题 便 迎 刃 而 解 了。
⑵、 若 更 换 软 驱 中 的 磁 盘, 再 次 选 中 当 前 驱 动 器 进 行 目 录 列 表 时, 则 驱 动器 列 表 框 和 目 录 列 表 框 中 的 内 容 不 会 有 变 动, 仍 为 上 一 张 盘 的 内 容,
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘