对于我正在处理的当前应用程序,我想使用我自己的自定义控件模拟一个组合框,因为我希望它是多列的并具有一些附加功能。我正在使用文本框和数据 GridView 来执行此操作。
我想复制可与常规组合框一起使用的建议/附加。我有这个工作得很好。用户可以开始输入,获得建议列表,并可以使用向上和向下键滚动条目。
我已经设置了回车键将选中的行作为值。这非常有效,但我也想捕获制表键并执行相同的操作,就像组合框控件中已经嵌入的功能一样。
问题是,显然 vb.net 使用 tab 键来更改选定的控件,并且在我可以调用我的子例程从我的 datagridview 中获取选定的行之前触发。我希望能够取消控件外的 Tab 键,或者至少找到一种方法在它执行之前触发我的代码。
提前致谢。
最佳答案
TextBox 还有一个 AcceptsTab
属性,它在 Multiline = True
时起作用。
有了这些条件,您现在可以查看是否按下了 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
关于vb.net - 如何在文本框中按下 Tab 键时触发事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11969141/