谁能告诉我两者之间的区别KeyDown
事件,KeyPress
事件和KeyUp
事件?我查了msdn网站,没有太多解释。
谁能用简单的逻辑意义告诉我每个事件发生的时间?我感觉上述所有事件都是在按下某个键时发生的。那么它们之间的具体区别是什么呢?
MSDN 文档相当清楚地说明了这三个事件发生的顺序:
关键事件按以下顺序发生:
- KeyDown
- KeyPress
- KeyUp
KeyDown当用户按下键盘上的某个键(同时仍按住该键)时,该按钮就会升起。
KeyPress是为特点键(与 KeyDown 和 KeyUp 不同,它们对于非字符键也会升高)。这是一个比 KeyDown 或 KeyUp 更高级别的事件,因此,可以在EventArgs
.
KeyUp用户释放键盘上的按键后引发。
一般来说,您应该处理KeyUp
您的应用程序中的事件。不应在 UI 中启动操作,直到after用户释放密钥。自从KeyUp
是一个比KeyPress
,您始终可以轻松获得有关按下的按键的大量信息,它甚至可以用于处理非字符按键。
需要注意的事情all然而,这些事件的一个特点是它们仅由具有焦点的控件引发。这意味着,如果表单上的按钮控件当前具有焦点,则您的任何关键事件都不会发生。form永远都会被提升。对于刚接触 .NET 的程序员来说,这常常令人困惑。处理这个问题的最好方法是覆盖表单的ProcessCmdKey method:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == (Keys.Control | Keys.A))
{
MessageBox.Show("You pressed Ctrl+A!");
}
return base.ProcessCmdKey(ref msg, keyData);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)