当我按下文本框中的输入时发出恼人的嘟嘟声

时间:2013-12-10 22:39:47

标签: c# .net windows winforms visual-studio-2010

当用户按下文本框中的输入时,我正试图让一些事情发生,并且它可以正常工作,但是当我这样做时,它会产生一个非常恼人的DING窗口错误声音。我已经查找了我的问题,并且显然在这些内容之前添加了e.SuppressKeyPress = true;,并且在这些内容之后添加了e.Handled = true;,但我的程序仍然会发出声音。这是我正在使用的代码:

private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
    e.SuppressKeyPress = true;
    if (e.KeyCode == Keys.Enter)
    {
        // A bunch of stuff goes here that I want to 
        // happen when the user hits enter               
    }
    e.Handled = true;
}

我做错了吗?这是其他人说你必须做的事情,但由于某些原因它不适合我...

谢谢!

2 个答案:

答案 0 :(得分:6)

您需要处理KeyDown,而不是KeyUp,以便取消KeyPress事件。 KeyDown文档解释了为什么,因为它列出了事件的顺序:

  • 的KeyDown
  • 按键响应
  • KEYUP

在您设置e.SupressKeyPress时,KeyPress事件已经发生。

答案 1 :(得分:0)

您所做的没错,只是在if语句中放入(e.supperkeypress = ture)。

private void textBox1_KeyUp(object sender, KeyEventArgs e)
{

    if (e.KeyCode == Keys.Enter)
    {
        e.SuppressKeyPress = true;
        // A bunch of stuff goes here that I want to 
        // happen when the user hits enter               
    }
    e.Handled = true;
}