支持鼠标滚轮的ComboBox下拉列表控件

支持鼠标滚轮的 ComboBox 控件,在 VB 里其实还挺实用的,是你下拉项多的时候,不用手点一点滑块了,滚轮滑一下,交互感立马就提升不少。默认 VB 的 ComboBox 是不给力的,滚轮不响应,得自己上手补一刀。原理不复杂,关键是监听MouseWheel事件,判断滚轮方向动SelectedIndex,再拦一下默认行为,体验就顺了。

VB 的控件事件机制其实还蛮清晰的,你对事件模型熟点,上手也快。像这样:

Private Sub ComboBox1_MouseWheel(ByVal sender As Object, ByVal e As MouseEventArgs) Handles ComboBox1.MouseWheel
  If e.Delta > 0 Then
    If ComboBox1.SelectedIndex > 0 Then ComboBox1.SelectedIndex -= 1
  Else
    If ComboBox1.SelectedIndex < ComboBox1 xss=removed xss=removed>

简单直接,逻辑也清晰。你要想做得再细点,比如防抖、防越界滚动、模拟平滑过渡,也可以加个Timer控件或者做节流。要注意的是,有些老 VB 版本不太支持这个事件,最好做下兼容性判断。

哦对了,网上也有些参考资料,像VB6 鼠标滚轮事件扩展控件这种,实在不想自己写,也可以拿来直接用。

如果你在做 VB 桌面应用,列表项又挺多,不妨加上这个滚轮支持,用户体验会好不少。鼠标都到那了,要能滚对吧?

rar 文件大小:23.79KB