combobox在Windows8.1无法用鼠标滚轮改变选中项

zhwdai 2020-08-14 10:59:59
Winform程序,画面上有一个combobox
在Win10中,当我移动鼠标至combobox上面,不点击该控件的前提下,直接滚动滚轮就可以改变combobox的当前选中值。
在Win8.1中,进行同样的操作,鼠标滚轮不会改变combobox的选中值。
我觉得是操作系统对于鼠标的动作处理方式不同导致的差异,但是具体的原因在官方没找到相关内容。
想请教一下是否有人知道明确的原因。谢谢
...全文
11653 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tengwei6328 2020-08-18
  • 打赏
  • 举报
回复
那没办法,WIN7 也没有这种体验,如果要兼容不同操作系统的差异,那你只能这样特殊处理了~
zhwdai 2020-08-18
  • 打赏
  • 举报
回复
引用 1 楼 tengwei6328 的回复:
这个不是操作系统的问题,而是你的处理方式。 要滚动滚轮就可以改变combobox的当前选中值,就必须使用这下拉框成为活动控件。 所以必须要处理:MouseEnter事件,就可以处理。

    Private Sub ComboBox2_MouseEnter(sender As Object, e As EventArgs) Handles ComboBox2.MouseEnter

        '2个方法其一即可。

        ComboBox2.Focus()

        Me.ActiveControl = ComboBox2

    End Sub
Win10不用设置活动控件也没问题。Win10下焦点在A控件,你把鼠标移动到B控件,不用改变活动控件,滚动滚轮,鼠标触发的是B控件的滚动处理。但是Win8.1就没有这种体验
tengwei6328 2020-08-17
  • 打赏
  • 举报
回复
这个不是操作系统的问题,而是你的处理方式。 要滚动滚轮就可以改变combobox的当前选中值,就必须使用这下拉框成为活动控件。 所以必须要处理:MouseEnter事件,就可以处理。

    Private Sub ComboBox2_MouseEnter(sender As Object, e As EventArgs) Handles ComboBox2.MouseEnter

        '2个方法其一即可。

        ComboBox2.Focus()

        Me.ActiveControl = ComboBox2

    End Sub

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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