首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >抑制beep winform / textbox

抑制beep winform / textbox
EN

Stack Overflow用户
提问于 2015-07-27 16:51:22
回答 1查看 108关注 0票数 1

我有一个键序列"CTRL+U“,在形式上,我有一个KeyDown方法,它查看关键变量e并做它想做的事情。它没有设置结果。

它起作用了。

但是,如果将焦点放在文本框中,然后按下键组合,它仍然有效,但是我会听到蜂鸣声。

对于如何解决这个问题,我有点困惑,因为要在每个控件中抑制一个关键事件(如果我有几个文本框)听起来需要做很多工作。

处理程序:

代码语言:javascript
复制
    private void XXXXXForm_KeyDown(object sender, KeyEventArgs e)
    {
        if(e.Control)
        {
            bool bHandle = false;
            bool bChecked = true;
            if (e.KeyCode == Keys.U)
            {
                bChecked = false;
                bHandle = true;
            }
            else if (e.KeyCode == Keys.T)
            {
                bChecked = true;
                bHandle = true;
            }

            if(bHandle)
            {
                // Do stuff
            }
        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-27 19:11:02

我在另一个网站上找到了这个信息:

"e.Handled = true;“语句并不像您在这里所想的那样。这方面的文档^是令人困惑的,人们可以用您的方式来解释它。但是,您需要意识到,他们正在讨论在KeyPress事件中设置"Handled“。更糟糕的是,KeyPressed事件使用的是KeyPressEventArgs而不是KeyEventArgs。 相反,使用e.SuppressKeyPress = true;

这就是解决办法!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31658870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档