vb.net - 如何在文本框中按下 Tab 键时触发事件?

标签 vb.net winforms events

对于我正在处理的当前应用程序,我想使用我自己的自定义控件模拟一个组合框,因为我希望它是多列的并具有一些附加功能。我正在使用文本框和数据 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/

相关文章:

mysql - 如何根据学号在联结表上进行选择

javascript - 文本框只允许 a-z 0-9 和 . , + - 和 $

vb.net - Visual Basic 6.0 语句不在有效的命名空间中

c# - 绑定(bind)数据源更改时控件不更新?

c# - 将 MouseEnter/MouseLeave 事件与 ContextMenus 一起使用

c# - Visual Studio 跳转到快捷方式

c# - windiff 样式垂直线

c# - 如何防止 RadioGroup 尝试将 SelectedItem 设置为焦点?

javascript - AngularJs:更新事件的 $scope

c# - MSDN 在提及事件及其事件处理程序时是否使用了错误的术语?