根据我对您问题的理解,您应该这样做:
Private Sub TabOnEnterKey(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown,
TextBox2.KeyDown,
ListBox1.KeyDown,
ListBox2.KeyDown
If e.KeyCode = Keys.Enter Then
Select Case e.Modifiers
Case Keys.None
'Move forward in the Tab order.
SelectNextControl(ActiveControl, True, True, True, True)
Case Keys.Shift
'Move backward in the Tab order.
SelectNextControl(ActiveControl, False, True, True, True)
End Select
End If
End Sub
根据评论,将e.SuppressKeyPress 设置为True 将防止在单行TextBox 中按Enter 时播放声音。代码的结构有多种方式,请记住,只有在您实际调用 SelectNextControl 时才想这样做。您可以在我已经发布的内容中添加两次相同的代码:
Private Sub TabOnEnterKey(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown,
TextBox2.KeyDown,
ListBox1.KeyDown,
ListBox2.KeyDown
If e.KeyCode = Keys.Enter Then
Select Case e.Modifiers
Case Keys.None
'Move forward in the Tab order.
SelectNextControl(ActiveControl, True, True, True, True)
'Prevent sound playing in single-line TextBoxes.
e.SuppressKeyPress = True
Case Keys.Shift
'Move backward in the Tab order.
SelectNextControl(ActiveControl, False, True, True, True)
'Prevent sound playing in single-line TextBoxes.
e.SuppressKeyPress = True
End Select
End If
End Sub
或者你可以这样做:
Private Sub TabOnEnterKey(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown,
TextBox2.KeyDown,
ListBox1.KeyDown,
ListBox2.KeyDown
If e.KeyCode = Keys.Enter Then
Dim forward As Boolean? = Nothing
Select Case e.Modifiers
Case Keys.None
forward = True
Case Keys.Shift
forward = False
End Select
If forward.HasValue Then
'Move following the Tab order.
SelectNextControl(ActiveControl, forward.Value, True, True, True)
'Prevent sound playing in single-line TextBoxes.
e.SuppressKeyPress = True
End If
End If
End Sub