如何判断某个文本框中是否按下了Tab键。
我尝试将AcceptsTab
属性设置为true并创建一个处理texstboxname.KeyPress
事件的函数,但是当我在内部选项卡时,它只是开箱即用,而不是点击我的事件。 (普通键可以触发我的事件,但是Tab甚至不会触发它)
答案 0 :(得分:4)
Multiline属性也必须为true。
From MSDN(以粗体强调)
获取或设置一个值,指示是否在多行文本框控件中按TAB键在控件中键入TAB字符,而不是将焦点移动到Tab键顺序中的下一个控件。
所以将Multiline
属性设置为true。
正如MiniTech所指出的,KeyDown更易于处理,因为它为您提供e.KeyCode
属性,而KeyPress事件仅提供e.KeyChar
属性。
Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) _
Handles TextBox1.KeyDown
If e.KeyCode = Keys.Tab Then
'user pressed the Tab key...
End If
End Sub
答案 1 :(得分:2)
似乎你可以另外
multiline
属性IsInputKey
或Keydown
事件之前覆盖Keypress
。
PreviewKeyDown
事件,并将IsInputKey
提取为真。 我使用了选项二的第二部分,因此我不必担心multiline
属性正在运行,并且可以将我的代码保留为keypress
事件
Private Sub txtEntryBar_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles txtEntryBar.PreviewKeyDown
If e.KeyData = Keys.Tab Then
e.IsInputKey = True
End If
End Sub