.NET中的KeyDown和KeyPress事件有什么区别?
当前回答
我一直认为keydown发生在你按下键的那一刻,keypress是按下键并释放它的动作。
我发现这个给出了一些不同的解释:http://bytes.com/topic/net/answers/649131-difference-keypress-keydown-event
其他回答
从MSDN:
关键事件的发生顺序如下: KeyDown 键盘按键 按键弹起
此外,KeyPress给你一个机会来声明动作为“处理”,以防止它做任何事情。
我一直认为keydown发生在你按下键的那一刻,keypress是按下键并释放它的动作。
我发现这个给出了一些不同的解释:http://bytes.com/topic/net/answers/649131-difference-keypress-keydown-event
来自博客开发者:
为了理解按下键和按下键的区别,理解“字符”和“键”的区别是有用的。“键”是计算机键盘上的一个物理按钮,而“字符”是通过按下按钮键入的符号。理论上,keydown和keyup事件代表按键被按下或释放,而keypress事件代表正在输入的字符。该理论在所有浏览器中的实现并不相同。
注意:您还可以尝试Key Event Tester(在上述站点上可用)来理解这个概念。
KEYUP只会在按键释放时被捕获一次,而不管按键被按住多长时间,所以如果您只想捕获这样的按键一次,KEYUP是适合捕获的事件。
最简单的解释:
我按住“d”键一秒钟,然后松开。
dddddd
在屏幕上出现第一个d之前,keydown事件发生一次,keypress事件发生6次,keyup事件发生在屏幕上出现最后一个d之后。
推荐文章
- 如何为构造函数定制Visual Studio的私有字段生成快捷方式?
- 为什么Visual Studio 2015/2017/2019测试运行器没有发现我的xUnit v2测试
- AppSettings从.config文件中获取值
- 如何检查IEnumerable是否为空或空?
- 没有ListBox。SelectionMode="None",是否有其他方法禁用列表框中的选择?
- 在c#代码中设置WPF文本框的背景颜色
- 如何在iis7应用程序池中设置。net Framework 4.5版本
- 如何分裂()一个分隔字符串到一个列表<字符串>
- 如何指定最小值,但没有使用范围数据注释属性的最大小数?
- 如何在PowerShell中获得本地主机名?
- 为什么在Java和。net中不能修改字符串?
- 'throw'和'throw new Exception()'的区别
- c# int到字节[]
- 如何跟踪log4net问题
- foreach vs somlist . foreach (){}