我有一个键序列"CTRL+U“,在形式上,我有一个KeyDown方法,它查看关键变量e并做它想做的事情。它没有设置结果。
它起作用了。
但是,如果将焦点放在文本框中,然后按下键组合,它仍然有效,但是我会听到蜂鸣声。
对于如何解决这个问题,我有点困惑,因为要在每个控件中抑制一个关键事件(如果我有几个文本框)听起来需要做很多工作。
处理程序:
private void XXXXXForm_KeyDown(object sender, KeyEventArgs e)
{
if(e.Control)
{
bool bHandle = false;
bool bChecked = true;
if (e.KeyCode == Keys.U)
{
bChecked = false;
bHandle = true;
}
else if (e.KeyCode == Keys.T)
{
bChecked = true;
bHandle = true;
}
if(bHandle)
{
// Do stuff
}
}
}发布于 2015-07-27 19:11:02
我在另一个网站上找到了这个信息:
"e.Handled = true;“语句并不像您在这里所想的那样。这方面的文档^是令人困惑的,人们可以用您的方式来解释它。但是,您需要意识到,他们正在讨论在KeyPress事件中设置"Handled“。更糟糕的是,KeyPressed事件使用的是KeyPressEventArgs而不是KeyEventArgs。 相反,使用e.SuppressKeyPress = true;
这就是解决办法!
https://stackoverflow.com/questions/31658870
复制相似问题