你如何停止这个烦人的叮当声?

How do you stop this annoying ding?

我知道这个问题已被问及多次回答,但如果 none 的答案有效怎么办?我正在使用 Visual Studio 2017 重写一个 vb6 应用程序,该应用程序捕获组合键 "ctrl+enter" 以加载对话。 我从名为 CourtName 的文本框中捕捉到组合键,但无法摆脱伴随它的烦人 "ding"。 我在谷歌上搜索了很多小时,但到处都是使用 e.Handled and/or e.SuppressKeyPress,但我没有成功。 这是我的代码:

Private Sub CourtName_KeyDown(sender As Object, e As KeyEventArgs) Handles CourtName.KeyDown
        If e.KeyCode = Keys.Enter AndAlso e.Control Then
            e.Handled = True
            e.SuppressKeyPress = True
            CourtsBtn.PerformClick()
        End If
End Sub

无论 e.Handled 和 e.SuppressKeyPress 语句是在 PerformClick() 语句之前还是之后,提示仍然存在。 我缺少什么魔法?

尝试替换以下代码:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    TextBox1.Multiline = True
    MsgBox("Pressed!")
End Sub

Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown
    If e.KeyData = Keys.Control + Keys.Enter Then
        TextBox1.Multiline = False
        Button1.PerformClick()
    End If
End Sub

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    TextBox1.Multiline = True
End Sub

我已经在我的机器上测试了这段代码,它运行完美!

尽情享受吧!

我刚刚测试了这段代码,无论使用或不使用什么修饰符,都没有 ding Enter:

Public Class Form1

    Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown
        If e.KeyCode = Keys.Enter Then
            'Suppress Windows audio feedback.
            e.Handled = True
            e.SuppressKeyPress = True
        End If

        If e.KeyData = (Keys.Control Or Keys.Enter) Then
            Button1.PerformClick()
        End If
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Console.WriteLine("Button1_Click")
    End Sub

End Class

你能测试一下相同的代码,看看它是否适合你吗?