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

问题描述 投票:4回答:3

当用户按下文本框中的输入时,我正试图让某些事情发生,并且它可以工作,但是当我这样做时,它会产生一个非常烦人的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;
}

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

谢谢!

c# .net windows winforms visual-studio-2010
3个回答
7
投票

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

  • 的KeyDown
  • 按键
  • KEYUP

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


0
投票

可以试试这个!

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

0
投票

你做了什么并没有错,只是在if语句中放入(e.suppresskeypress = true)。

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;
}
© www.soinside.com 2019 - 2024. All rights reserved.