使用Button.PerformClick()

时间:2017-03-10 05:20:44

标签: vb.net

如果在特定文本框中按下“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噪音停止。我在这里完全不知所措......

1 个答案:

答案 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