1、执行先后顺序:
keydown-->keypress-->keyup
2、按键相关操作:
1)keydown和keyup参数类型KeyEventArgs(提供了KeyCode)实现形式:e.KeyCode==Keys.A。
keypress参数类型KeyPressEventArgs(提供了KeyChar)实现形式:e.KeyChar=='A'
2)keyup事件会回传到上一层。e.g. 点击Enter,Textbox执行完keyup后,窗体同样可以捕获到enter。
keypress和keydown则会阻止外传。
3、取消用户输入:
keypress:e.Handler=true;
keydown:e.SuppressKeyPress(); SuppressKeyPress方法可以取消KeyPress事件,注意此时KeyUp事件也被取消了。(待测)
4、键盘反馈:
组合键ctrl+A形式用keydown。
keydown:e.KeyCode会出现相同情况,不能详细区分。e.g. 加减号(-+)返回同一KeyCode。=====>系统原因