为啥 e.Handled 不停止哔哔声?

Posted

技术标签:

【中文标题】为啥 e.Handled 不停止哔哔声?【英文标题】:Why isn't e.Handled stopping the beeps?为什么 e.Handled 不停止哔哔声? 【发布时间】:2013-11-20 02:25:30 【问题描述】:

我的 Visual Studio 2012 项目中有多个文本框和组合框,并且我将 keydown 设置为在按下 Enter 时执行不同的事件。而且,每次都有那种无用的、令人讨厌的哔哔声。我看了一遍,发现 e.Handled = true 和 e.SuppressKeyPress = true 解决方案,他们没有做任何该死的事情。

我的组合框中的代码是:

  private void cmbNavigate_KeyDown(object sender, KeyEventArgs e)
    
        if (e.KeyCode == Keys.Enter)
        
            e.SuppressKeyPress = true;
            webBrowser1.Navigate(cmbNavigate.Text);
        
    

我已经尝试过使用 Suppress 和标准 Handled,但两者都不起作用,它只是一直在嘲笑我。

【问题讨论】:

这是一个默认的 Windows 设置,它让您知道它不是多行的,因此会警告您 Enter 实际上不会让您进入下一行。我知道我可以更改 Windows 中的设置,但这只会帮助我,而不是我的用户。 什么UI框架,Winform,WPF,ASP? 这是一个基本的 Windows 窗体。 在 e.suppressKeyPress=true 中放一个断点,看看你的代码是否到达这里。 e.SuppressKeyPress = true; 在 KeyDown() 中杀死了我系统上的哔哔声。在 Win 8.1 x64 上运行 VS2013。就像 Musfiqur rahman 所说的那样,确保您的活动已连接并实际触发。 【参考方案1】:

除了e.SuppressKeyPress = true;之外,试试e.Handled = true;

【讨论】:

成功了。单独一个都行不通,两个都完成了!谢谢! @AarronDixon 你的代码对我来说工作,甚至不需要e.Handled = true 这只是关于 .NET Framework 的那些奇怪而深奥的事情之一。 :)

以上是关于为啥 e.Handled 不停止哔哔声?的主要内容,如果未能解决你的问题,请参考以下文章

无法在文本框 keydown 事件上禁用哔声

e.Handled 在 VB.net 2010 中不起作用

有条件的哔声不起作用

SoundPool 和 MediaPlayer 在一段时间后循环播放的哔声停止

当我在 Python 的注释块中键入和括号时,Mac 会发出哔哔声

为啥我在这个程序上听到哔哔声? [复制]