还是ListBox的滚动问题,用鼠标滚轮

supershui 2002-06-24 09:06:30
用鼠标滚轮滚动ListBox时,有时候无法触发ListBox_Scroll事件,是不是有什么地方设的不对?
俺的ListBox足够长,有垂直滚动条的。
另外,当一个ListBox处于激活状态,把鼠标指针放在另一个ListBox上转动滚轮,好像两个ListBox都可能会滚动,这正常吗?还是俺的驱动有问题?
...全文
528 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wgku 2002-06-25
  • 打赏
  • 举报
回复
鼠标滚轮有的不靠驱动支持也能实现滚动(因为操作系统直接支持),前提是焦点要在其上(比如说你要滚动LISTBOX那焦点要在LISTBOX上)。但装了驱动后就不一样了,无论焦点在那里,鼠标鼠标只要指向有滑块的地方就可以滚动这个滚动条。

我相驱动程序会不会用SendMessage的原理来做??向你鼠标指向的窗体,控件发送消息??直接改变滑块的Value????
supershui 2002-06-25
  • 打赏
  • 举报
回复
我要获得鼠标滚论造成的Scroll事件该怎么办?

一个包含两个ListBox和两个TextBox的Form,代码如下:
Option Explicit
Dim c1 As Long, c2 As Long

Private Sub Form_Load()
c1 = 0
c2 = 0
Text1.Text = CStr(c1)
Text2.Text = CStr(c2)
Dim i As Long
For i = 0 To 100
List1.AddItem "List1 Item " & i
List2.AddItem "List2 Item " & i
Next i
End Sub

Private Sub List1_Scroll()
c1 = c1 + 1
Text1.Text = CStr(c1)
End Sub

Private Sub List2_Scroll()
c2 = c2 + 1
Text2.Text = CStr(c2)
End Sub

现在鼠标滚轮造成的滚动不触发scroll事件,好像跟驱动有关。
我现在要在ListBox滚动时重写ListBox内容的,所以这样的滚动一定要捕捉到,请问有什么办法吗?
supershui 2002-06-25
  • 打赏
  • 举报
回复
我用Microsoft IntelliPoint的驱动。不过就算把它关掉,用滚轮滚动ListBox的时候还是捕捉不到这个Scroll事件。
估计操作系统也作了特殊处理了。
郁闷死啦。
zyl910 2002-06-24
  • 打赏
  • 举报
回复
都是正常的

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧