Kar*_*yal 4 vb.net tabs keydown onkeydown
我想在Keydown事件上捕获TAB按键.我可以看到另一篇关于如何在文本框中按Tab键时触发事件的帖子?
但是,在上面的链接中,发布的解决方案对我来说不起作用,我在下面提到过.
Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) _
Handles TextBox1.KeyDown
If e.KeyCode = Keys.Tab Then
e.SuppressKeyPress = True
'do something
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
出于测试目的,我在FORM1上添加了2个简单的文本框,并编写下面的代码来捕获KeyDown事件上的TAB.
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
If e.KeyCode = Keys.Tab Then
e.SuppressKeyPress = True
MsgBox("TAB DOWN")
End If
End Sub
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Me.Text = e.KeyChar
End Sub
Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
If e.KeyCode = Keys.Tab Then
MsgBox("TAB UP")
End If
End Sub
Private Sub TextBox1_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Leave
Me.Text = "LEAVE"
End Sub
Run Code Online (Sandbox Code Playgroud)
上面的代码应该假设在按下TAB时在KeyDown上显示一个消息框.它不起作用.
请让我知道我做错了什么.提前致谢!!!
我发现了一个名为PreviewKeyDown()的新事件
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
If e.KeyCode = Keys.Tab Then
Me.Text = "TAB Capture From TextBox1_KeyDown At " & Now.ToString
End If
End Sub
Private Sub TextBox1_PreviewKeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles TextBox1.PreviewKeyDown
If e.KeyCode = Keys.Tab Then
Me.Text = "TAB Capture From TextBox1_PreviewKeyDown At " & Now.ToString
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
如果您将执行上面的代码,您将能够在PreviewKeyDown()事件上捕获TAB键.