簡體   English   中英

如果用戶在文本框中按下Enter鍵,則捕獲

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM