Search code examples
c#enterbeep

Disable beep of enter and escape key


I want to disable the beep sound that I get when I press enter in a TextBox. My KeyDown event is:

private void textBox_Zakljucak_KeyDown(object sender, KeyEventArgs e)
{
    if ((e.KeyCode == Keys.Enter) || (e.KeyCode == Keys.Tab))
    {
        Parent.SelectNextControl(textBox_Zakljucak, true, true, true, true);
    }
    else if ((e.KeyCode == Keys.Back))
    {
        textBox_Zakljucak.Select(textBox_Zakljucak.Text.Length, 0);
    }
    else if (!Regex.IsMatch(textBox_Zakljucak.Text, @"^[0-9.-]+$"))
    {
        textBox_Zakljucak.Clear();
        textBox_Zakljucak.Select(textBox_Zakljucak.Text.Length, 0);
    }
}

Solution

  • You have to prevent the KeyPressed event from being generated, that's the one that beeps. That requires setting the SuppressKeyPress property to true. Make that look similar to:

    if ((e.KeyCode == Keys.Enter) || (e.KeyCode == Keys.Tab))
    {
        Parent.SelectNextControl(textBox_Zakljucak, true, true, true, true);
        e.Handled = e.SuppressKeyPress = true;
    }