禁用进入和退出键c#的蜂鸣声

use*_*654 4 c# enter beep

我想禁用当我按下输入时得到的哔声textbox.我的KeyDown活动是:

 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);
            }
    }
Run Code Online (Sandbox Code Playgroud)

Han*_*ant 20

你必须阻止生成KeyPressed事件,那就是发出哔哔声的事件.这需要将SuppressKeyPress属性设置为true.使它看起来类似于:

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

  • 这是不可避免的,消息框会在您取消之前调度KeyPressed事件.不要使用MessageBox或使用this.BeginInvoke()显示它延迟. (4认同)

a C*_*CVn 5

如果要防止事件在 Winforms 或 WPF/Silverlight 中冒泡,则需要在事件处理程序中设置e.Handled为。true

仅当您实际上已经对事件进行了满意的处理并且不希望进一步处理相关事件时才执行此操作。