您的位置:学习中国 推荐教程 VB编程 正文
原作者:kuku 添加时间:2007-06-02 原文发表:2007-06-02 人气:69 来源:互联网

本文章共1838字,分2页,当前第1页,快速翻页:
 

---- Visual Basic 的 列 表 框 控 件 中 包 含 项 目 的 列 表, 本 文 介 绍 如 何 检 查 列 表 中 项 目 是 否 已 经 存 在, 以 及 如 何 将 新 的 项 目 添 加 到 列 表 框 控 件 中。

使 用SendMessage 函 数 搜 寻 重 复 的 项 目

---- 在Visual Basic 中 开 发 应 用 程 序 时, 可 以 使 用 列 表 框 控 件 来 创 建 一 个 项 目 的 列 表。 要 将 新 的 项 目 添 加 到 列 表 中, 可 以 使 用AddItem 方 法, 该 方 法 不 能 自 动 地 报 告 在 列 表 框 控 件 中 是 否 有 重 复 的 信 息 存 在, 所 以 必 须 在 将 新 项 目 添 加 到 列 表 之 前 首 先 检 查 一 下。

---- 可 以 通 过 使 用Windows 应 用 程 序 编 程 接 口(API) 的SendMessage 函 数 来 在 列 表 框 控 件 中 搜 寻 指 定 的 项 目, 它 函 数 允 许 向 操 作 系 统 中 发 送 消 息。 在 本 文 的 例 子 里, 我 们 让SendMessage 函 数 往 列 表 框 控 件 中 执 行 一 个LB_FINDSTRING 消 息。

---- LB_FINDSTRING 消 息 允 许 在 一 个 列 表 框 控 件 中 搜 索 同 目 标 字 符 串 相 匹 配 的 项 目。 该 消 息 的 第 一 个 参 数 是 希 望 进 行 的 搜 索 类 型, 须 将 该 值 设 为0, 表 示 从 列 表 框 控 件 中 的 第 一 个 项 目 开 始 搜 索。 第 二 个 参 数 是 一 个NULL 结 束 的 字 符 串, 它 是 实 际 希 望 搜 索 的 项 目。

---- 如 果 该LB_FINDSTRING 消 息 返 回 值-1, 则 表 明 在 列 表 框 控 件 中 没 有 找 到 目 标 字 符 串, 此 时 可 以 使 用AddItem 方 法 来 将 新 的 项 目 添 加 到 列 表 框 控 件 中。 如 果 该 项 目 已 经 在 列 表 中 存 在, 则 可 以 简 单 地 显 示 一 个 信 息 框 或 是 执 行 一 些 其 它 的 过 程, 来 通 知 用 户 一 个 重 复 的 项 目 已 经 在 列 表 框 控 件 中 存 在。

样 例 程 序
---- 该 程 序 显 示 了 如 何 确 定 在 一 个 列 表 框 控 件 中 是 否 已 经 包 含 了 一 个 要 添 加 到 控 件 中 的 项 目。

---- 1. 在Visual Basic 中 开 始 一 个 新 的 工 程, 采 用 缺 省 的 方 法 建 立Form1。
---- 2. 将 如 下 常 量 和 声 明 语 句 添 加 到Form1 的 通 用 声 明 部 分 中( 注 意 该 声 明 语 句 需 要 被 书 写 在 一 行 内):
---- Private Declare Function SendMessageFind Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As String) As Long
---- Const WM_USER = &H400
---- Const LB_ERR = (-1)
---- Const LB_FINDSTRING = &H18F

---- 3. 将 如 下 代 码 添 加 到Form1 的Form_Load 事 件 中:

Private Sub Form_Load()
List1.AddItem "Item #1"
List1.AddItem "Item #2"
List1.AddItem "Item #3"
List1.AddItem "Item #4"
End Sub

---- 4. 在Form1 上 添 加 一 个 文 本 框 控 件, 采 用 缺 省 的 方 法 建 立Text1。
---- 5. 在Form1 上 添 加 一 个 列 表 框 控 件, 采 用 缺 省 的 方 法 建 立List1。
---- 6. 在Form1 上 添 加 一 个 命 令 按 钮 控 件, 采 用 缺 省 的 方 法 建 立Command1, 将 起Caption 属 性 设 置 为“ 重 复”。
---- 7. 将 如 下 代 码 添 加 到Command1 的 单 击 事 件 中:

Private Sub Command1_Click()
CheckForDupes
End Sub

---- 8. 创 建 一 个 新 的 名 为CheckForDupes 的 函 数, 将 如 下 代 码 添 加 到 该 函 数 中:

Sub CheckForDupes()
Dim Ret As Long
Dim A As String
A = Text1.TEXT
Ret = SendMessageFind(List1.hwnd, LB_FINDSTRING, 0, (A))
If Ret = LB_ERR Then
 
本文章更多内容1 - 2 - 下一页>>
本页地址
相关文章

VB中多级下拉列表的实现
VB中处理长列表框项的两种方法
VB应用程序中的工具提示和状态显示
VB实现窗口的弹出式菜单
VB实现按钮浮动效果
VB的OPEN对话框控件图示功能扩充
VB创建位图菜单
VB编程中如何锁定鼠标
VB编程中如何锁定鼠标
VB编程常见问题

相关评论


本文章所属分类:首页 推荐教程 VB编程   VB编程