如何使组合框向上/向下键在 DroppedDown = True 时模拟鼠标
Posted
技术标签:
【中文标题】如何使组合框向上/向下键在 DroppedDown = True 时模拟鼠标【英文标题】:How To Make Combo Box Up/Down Keys Mimic Mouse When DroppedDown = True 【发布时间】:2012-08-20 18:37:37 【问题描述】:我有绑定到绑定源的组合框。问题是当我在组合框中打开下拉菜单并单击向上或向下键盘键时,它会导致绑定源更改其位置并且事件开始触发,但不应该如此。只有当我按 Enter 或 Tab 键或用鼠标单击它时才会触发它。
到目前为止我尝试的是:
我尝试继承文本框并自己处理事件
Protected Overrides Sub OnKeyDown(ByVal e As System.Windows.Forms.KeyEventArgs)
If Me.DroppedDown Then
e.Handled = True
Else
MyBase.OnKeyDown(e)
End If
End Sub
但问题是当按下向上或向下键时,突出显示不会移动到任何地方。当组合框处于下拉模式时,我想模仿鼠标的行为。当鼠标悬停在项目上时,它会突出显示当前项目,但不会导致绑定源更改。 谢谢。
【问题讨论】:
【参考方案1】:我认为,如果您将 SelectedIndexChanged 中的内容移至 SelectionChangeCommited,它应该可以解决问题。每当您使用 SelectedIndexChanged 更改索引时,它都会自动触发。 SelectionChangeCommited 在做出最终选择时发生。
【讨论】:
我使用的是 bindingSource.positionChanged 而不是 selectedindexchanged以上是关于如何使组合框向上/向下键在 DroppedDown = True 时模拟鼠标的主要内容,如果未能解决你的问题,请参考以下文章
如何禁用向上/向下键在 Visual Studio 中滚动方法重载?