Search code examples
vb.nethandlerkeypress

How do you stop this annoying ding?


I know the question has been asked and answered many times, but what if none of the answers work? I'm using Visual Studio 2017 to rewrite a vb6 app that catches the key combination "ctrl+enter" to load a dialogue. I catch the key combination just fine from a textbox called CourtName, but can't get rid of the annoying "ding" that goes with it. I have googled for many hours but everywhere the answer is to use e.Handled and/or e.SuppressKeyPress, which I have done without success. Here is my code:

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

The ding still persists, no matter whether the e.Handled and e.SuppressKeyPress statements are before or after the PerformClick() statement. What magic am I missing?


Solution

  • Try replacing the following code:

    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
    

    I've tested this code on mine, it works perfect!

    100% working code

    Enjoy it!