如果用户按下回车键,我试图抓住Event
。如果按照MSDN documentation pages上的说明进行操作。
这是我Event
的{{1}}代码:
Textbox
我的问题是:当我按下键盘上的任何按钮时,Private Sub tbOccurrenceElevation_KeyDown(sender As Object, e As KeyEventArgs) Handles tbOccurrenceElevation.KeyDown
' Check if the enter key is pressed
If e.KeyCode = Keys.Return Then
OccurrenceElevation_Changed()
End If
End Sub
被触发,但当我按下回车键时,没有任何反应?
我尝试将Event
属性更改为Textbox
,但没有运气。
额外信息:文本框位于UserControl上,而不是表单控件。
答案 0 :(得分:1)
如果其他内容阻止文本框接收回车键,您可以尝试覆盖UserControl
的{{3}}。
它可能有效,但这一切都取决于事件链中父母拦截消息的位置。
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, keyData As System.Windows.Forms.Keys) As Boolean
If keyData = Keys.Return AndAlso tbOccurrenceElevation.Focused = True Then
'Do your stuff here.
Return True 'We've handled the key press.
End If
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
答案 1 :(得分:0)
试试这个:
Private Sub tbOccurrenceElevation_KeyDown(sender As Object, e As KeyEventArgs) Handles tbOccurrenceElevation.KeyDown
' Check if the enter key is pressed
If e.KeyCode = Keys.Enter or e.KeyCode = Keys.Return Then
OccurrenceElevation_Changed()
End If
End Sub
你必须记住大多数键盘都有Enter和Return。这些代码是不同的,所以你必须包括它们