📄 如何捕获listview的滚动条滚动事件.txt
字号:
对 于 以 报 表 方 式 显 示 的 ListView控 件 , 利 用 SendMessage函 数 发 送 LVM_GETTOPINDEX消 息 个 体 控 件 摁 扣 以 获 得 控 件 当 前 位 于 ListView视 图 内 最 顶 端 的 Item在 ListView中 的 索 引 。 如 果 滚 动 了 ListView, 该 值 会 改 变 , 你 可 以 使 用 一 个 笨 办 法 , 利 用 一 个 Timer控 件 , 每 一 段 时 间 发 送 LVM_GETTOPINDEX消 息 , 这 样 就 可 以 得 知 ListView是 否 被 滚 动 , 下 面 是 一 个 范 例 。
Option Explicit
Const LVM_FIRST = &H1000
Const LVM_GETTOPINDEX = (LVM_FIRST + 39)
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Any) As Long
Private Sub Command1_Click()
Debug.Print SendMessage(ListView1.hwnd, LVM_GETTOPINDEX, 0, 0)
End Sub
Private Sub Form_Load()
Dim x As ListItem
Dim i As Integer
For i = 1 To 20
Set x = ListView1.ListItems.Add(, , "Item" + Str(i))
Next i
End Sub
点 击 Command1就 可 以 得 到 当 前 位 于 ListView视 图 内 最 顶 端 的 Item在 ListView中 的 索 引 。
<END>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -