当用户按下文本框中的输入时,我正试图让某些事情发生,并且它可以工作,但是当我这样做时,它会产生一个非常烦人的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;
}
难道我做错了什么?这是其他人说你必须要做的事情,但由于某些原因它并不适合我...
谢谢!
你需要处理KeyDown
,而不是KeyUp
,以抑制KeyPress
事件。 KeyDown文档解释了为什么,因为它列出了事件的顺序:
在您设置e.SupressKeyPress
时,KeyPress
事件已经发生。
可以试试这个!
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;
}
}
你做了什么并没有错,只是在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;
}