为什么按Ctrl +"+"会在TextBox中产生哔声?

DyS*_*SoS 3 c# keyboard-shortcuts keyboard-hook winforms

我正在使用C#Windows Forms希望将Ctrl+"Oemplus"key用作我的应用程序的功能.我使用a German keyboard,这个键位于字母P右侧的2个键(即"+").每当我按下这个键Ctrl并且焦点在一起时,TextBox我就会发出一声哔哔声.
当我切换到US keyboard布局(仍然使用我的German keyboard)时也会发生这种情况.这就是] key.
Internet Explorers地址栏中按此键时也会发生同样的情况.我的问题是:

  1. 为什么此组合键会在TextBox中产生蜂鸣声.
  2. 我怎能避免发出哔哔声?

感谢您为此付出的任何努力.
更新:
我在美国/泰国键盘上试了一下,也发出了哔哔声.无论我使用什么逻辑键盘布局(德语,美国,泰国),都会发生这种情况.
蜂鸣声也发生在地址栏中的Windows资源管理器中,但不会出现在搜索框中.

Han*_*ant 7

当你按下按键时,你很希望发生什么.TextBox对它毫无疑问,它是BEEP!因为它可以看到用户正在尝试做一些特别的事情,但它并不确切知道是什么.发牢骚的好理由.解决方案是在下一个片段的// ..注释中实现魔术.使用额外的代码来结束最后的哔声:

    private void textBox1_KeyDown(object sender, KeyEventArgs e) {
        if (e.KeyData == (Keys.Control | Keys.Oemplus)) {
            // Invoke magic
            //...

            // Magic is done now:
            e.Handled = e.SuppressKeyPress = true;
        }
    }
Run Code Online (Sandbox Code Playgroud)