如何在文本框中按Tab键时触发事件?

Geo*_*geK 3 vb.net events winforms

对于我正在处理的当前应用程序,我想使用我自己的自定义控件来模拟一个组合框,因为我希望它是多列并具有一些附加功能.我正在使用文本框和datagridview来执行此操作.

我想复制可以与常规组合框一起使用的建议/追加.我的工作很棒.用户可以开始输入,获取建议列表,并可以使用向上和向下键滚动条目.

我已经捕获了回车键以将所选行作为值.这很好用,但我也想捕获tab键并执行相同的操作,就像已经嵌入组合框控件中的功能一样.

问题是,显然vb.net使用tab键来更改所选控件,然后在我调用我的子例程从我的datagridview中获取所选行之前触发.我希望能够取消控件中的tab键,或者至少找到一种方法来触发我的代码.

提前致谢.

Lar*_*ech 6

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
Run Code Online (Sandbox Code Playgroud)