如果您是组合框中的箭头键项目,vb.net 只会触发 selectedindexchanged 事件。我想知道他们是在向上还是向下键,或者他们实际上是用鼠标点击了该项目。
原因是如果他们用鼠标选择了项目,那么我会将焦点放回主面板滚动条,这样他们就可以在选择项目后立即使用滚轮。
如果他们通过组合框中的项目使用箭头键,则不要关注主面板。
我尝试捕获组合框的 keyup 事件,但如果您在组合框中使用箭头键控项目,则它不起作用。
如果您是组合框中的箭头键项目,vb.net 只会触发 selectedindexchanged 事件。我想知道他们是在向上还是向下键,或者他们实际上是用鼠标点击了该项目。
原因是如果他们用鼠标选择了项目,那么我会将焦点放回主面板滚动条,这样他们就可以在选择项目后立即使用滚轮。
如果他们通过组合框中的项目使用箭头键,则不要关注主面板。
我尝试捕获组合框的 keyup 事件,但如果您在组合框中使用箭头键控项目,则它不起作用。
您实际上可以将 PreviewKeyDown 事件与组合框的 MouseUp 事件一起使用。
Dim UsePanelScroll As Boolean = False
Private Sub ComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
'some code
If UsePanelScroll = True Then
Panel1.Focus()
End If
End Sub
Private Sub ComboBox_PreviewKeyDown(sender As Object, e As System.Windows.Forms.PreviewKeyDownEventArgs)
Select Case e.KeyCode
Case Keys.Tab, Keys.Up, Keys.Down
UsePanelScroll = False
Case Else
UsePanelScroll = True
End Select
End Sub
Private Sub ComboBox_MouseUp(sender As System.Object, e As System.Windows.Forms.MouseEventArgs)
If e.Button = Windows.Forms.MouseButtons.Left Then
UsePanelScroll = True
End If
End Sub