[英]Catch if user presses enter key in textbox
如果用戶按下Enter鍵,我試圖捕獲一個Event
。 如果遵循這些說明,則可在MSDN文檔頁面上找到這些說明。
這是我的Textbox
Event
代碼:
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
,但是當我按下Enter(回車)鍵時,什么都沒有發生?
我嘗試將Textbox
屬性更改為AcceptsReturn = True
但是沒有運氣。
額外信息:文本框位於UserControl而不是窗體控件上。
如果其他原因阻止了文本框接收Enter鍵,則可以嘗試改寫UserControl
ProcessCmdKey
。
它可能有效,但是這完全取決於父級在事件鏈中攔截消息的位置。
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
嘗試這個:
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鍵。 這些代碼不同,因此您必須同時包含它們
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.