如果在特定文本框中按下“enter”键,我试图让我的程序按下表单中的按钮。
我使用类似的代码来改变文本框之间的焦点,并且它的工作非常好。
Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown
If e.KeyCode = Keys.Enter Then
e.SuppressKeyPress = True
TextBox2.Focus()
End If
End Sub
在这种情况下,Windows噪音无法播放,焦点从TextBox1更改为TextBox2。
但是,我尝试在只更改一行时实现相同的代码。
Private Sub TextBox2_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox2.KeyDown
If e.KeyCode = Keys.Enter Then
e.SuppressKeyPress = True
Button2.PerformClick()
End If
End Sub
“e.SuppressKeyPress = True”不会阻止播放Windows噪音。
我现在已经研究了大约三个小时了,并且多次空手而归。我尝试将按钮设置为默认的“AcceptButton”,但是当我在任何文本框中按Enter键时,按下按钮。我只想在TextBox2中按下Enter键时按下按钮。
我还应该提一下,只需按下按钮就不会产生噪音。仅当用户在TextBox2中按“enter”时才会这样做。
编辑1 - 我尽力调试,似乎只有在用户按下回车时才会发生。
Private Sub TextBox2_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox2.KeyDown
If e.KeyCode = Keys.Enter Then
e.SuppressKeyPress = True
End If
End Sub
从代码中删除按钮单击(见上文)会使Windows噪音停止。我在这里完全不知所措......
答案 0 :(得分:0)
我修改了此问题,方法是将Private Sub TextBox2_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox2.KeyDown
更改为Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
并仅使用e.Handled = true
。