加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 为什么按Ctrl“”会在TextBox中产生一声蜂鸣声?

发布时间:2020-12-16 00:04:46 所属栏目:百科 来源:网络整理
导读:我正在使用C#和 Windows Forms,并希望使用Ctrl“Oemplus”作为我的应用程序的功能键.我使用德语键盘,这个键位于字母P右侧的2个键(即“”).每当我与Ctrl结合使用此键并且焦点位于TextBox上时,我会发出一声哔哔声. 当我切换到美国键盘布局(仍使用我的德语键盘)
我正在使用C#和 Windows Forms,并希望使用Ctrl“Oemplus”作为我的应用程序的功能键.我使用德语键盘,这个键位于字母P右侧的2个键(即“”).每当我与Ctrl结合使用此键并且焦点位于TextBox上时,我会发出一声哔哔声.
当我切换到美国键盘布局(仍使用我的德语键盘)时也会发生这种情况.这是关键.
在Internet Explorers地址栏中按此键时也会发生同样的情况.
我的问题是:

>为什么此组合键会在TextBox中产生哔声.
>我怎样才能避免发出哔哔声?

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

解决方法

我认为发生的是文本框不允许组合键,因此您收到错误.您可以通过此代码测试密钥组合(使用EN Windows中的右括号键),它使用 SuppressKeyPress来防止密钥组合被传递到底层控件以防止发出蜂鸣声.

private void textBox1_KeyDown(object sender,KeyEventArgs e)
{
    if (ModifierKeys == Keys.Control)
        if (e.KeyValue == 221) // You may need to determine this value for your keyboard layout.
        {
            textBox1.Text += " + "; // Handle the Key combination.
            e.SuppressKeyPress = true;  // Prevents key from being passed to underlying control
        }

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读