选项卡键功能在VB.Net中使用Enter键

Kis*_*mar 4 .net vb.net textbox visual-studio-2010

我有一个有近20个Textbox和5个Combobox的表单和一个依赖于另一个的控件,现在我想以这样的方式编写表单的代码,Pressing EnterKey和TabKey应该具有相同的功能.

就像按下Tab按键时,当我按下Enter按键时,也应该执行焦点移动到下一个控制.类似地,当我按下Enter键时,在按键事件中写入了一些过程代码,但是当我按下Tab键时也应该执行此操作.

小智 10

首先使表单的Keypreview属性= True然后在表单的Keydown事件中粘贴下面的代码

 If e.KeyCode = Keys.Enter Then
    Me.SelectNextControl(Me.ActiveControl, True, True, True, False) 'for Select Next Control
End If
Run Code Online (Sandbox Code Playgroud)


Mar*_*all 7

我在Winforms中完成它的SelectNextControl方法是使用Method.

Private Sub TextBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
    Dim tb As TextBox
    tb = CType(sender, TextBox)

    If Char.IsControl(e.KeyChar) Then
        If e.KeyChar.Equals(Chr(Keys.Return)) Then
            Me.SelectNextControl(tb, True, True, False, True)
            e.Handled = True
        End If
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

如果您使用的是WPF,则可以使用 TraversalRequest

Private Sub TextBox_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Input.KeyEventArgs)
    Dim tb As TextBox
    tb = CType(sender, TextBox)

    If e.Key = Key.Return Then
        tb.MoveFocus(New TraversalRequest(FocusNavigationDirection.Next))
    ElseIf e.Key = Key.Tab Then
        Exit Sub
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

截取Tab密钥,请看看这个Stackoverflow问题.