当用户按下文本框中的输入时,我正试图让一些事情发生,并且它可以正常工作,但是当我这样做时,它会产生一个非常恼人的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;
}
我做错了吗?这是其他人说你必须做的事情,但由于某些原因它不适合我...
谢谢!
答案 0 :(得分:6)
您需要处理KeyDown
,而不是KeyUp
,以便取消KeyPress
事件。 KeyDown文档解释了为什么,因为它列出了事件的顺序:
在您设置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;
}