keyDown keyPress keyUp 事件的区别
keyDown keyPress keyUp 事件的区别
一 触发顺序
keypress
keydown
keypress
keydown
keypress
keydown
keypress
keyup
KeyPress主要用来接收字母、数字等ANSI字符,
而 KeyDown 和 KeyUP 事件过程可以处理任何
不被 KeyPress 识别的击键,诸如:功能键(
F1-F12)、编辑键、定位键以及任何这些键
和键盘换档键的组合等。与 KeyDown 和
KeyUp 事件不同的是,KeyPress 不显示
键盘的物理状态(SHIFT键),而只是传
递一个字符。KeyPress 将每个字符的大、
小写形式作为不同的键代码解释,即作为两种
不同的字符。而 KeyDown 和 KeyUp 用两种
参数解释每个字符的大写形式和小写形式:
keycode — 显示物理的键(将 A 和 a 作为
同一个键返回)和 shift —指示 shift + key
键的状态而且返回 A 或 a 其中之一。
KeyDown、KeyUp事件是当按下 ( KeyDown )
或松开 ( KeyUp ) 一个键时发生的。
由于一般按下键盘的键往往会立即放开
(这和鼠标不同),所以这两个事件使用哪个差别不大。
keydown 从表现上来看是按下任意键,
按的字符,如果是文本框的话还没有
显示到文本框之前就产生的事件。
keyup 就是在松开按键时发生,
此时字符已经输入到文本框
keypress 整个按键动作完成之后,只响
应字符,对ctrl,alt等等这些控制键没有响应。
虽然从字面理解, KeyDown是按下一个键的意思,
但实际上二者的根本区别是, 系统由KeyDown
返回键盘的代码, 然后由TranslateMessage函数
翻译成成字符, 由KeyPress返回字符值.
因此在KeyDown中返回的是键盘的代码,
而KeyPress返回的是ASCII字符. 所以根据你
的目的, 如果只想读取字符, 用KeyPress,
如果想读各键的状态, 用KeyDown.
说KeyDown是按下, KeyPress是按下并松开,
是不对的. 如果你一直按着键呢? 这时不断地
产生KeyDown和KeyPress.
KeyDown、KeyUp 事件
这些事件是当一个对象具有焦点时按下 ( KeyDown )
或松开 ( KeyUp ) 一个键时发生的。
(要解释 ANSI 字符,应使用 KeyPress 事件。)
KeyPress 事件
此事件当用户按下和松开一个 ANSI 键时发生。
具有焦点的对象接收该事件。一个窗体仅在它
没有可视和有效的控件或 KeyPreview 属性被设置为
True 时才能接收该事件。一个 KeyPress 事件可以
引用任何可打印的键盘字符,一个来自标准字母
表的字符或少数几个特殊字符之一的字符与 CTRL
键的组合,以及 ENTER 或 BACKSPACE 键。
KeyPress 事件过程在截取 TextBox 或
ComboBox 控件所输入的击键时是非常有用的。
它可立即测试击键的有效性或在字符输入时对
其进行格式处理。改变 keyascii
参数的值会改变所显示的字符
keyDown keyPress keyUp 事件的区别的更多相关文章
- keydown - > keypress - > keyup 用法和区别
英文输入法: 事件触发顺序:keydown - > keypress - > keyup 中文输入法: firfox:输入触发keydown,回车确认输入触发keyup chr ...
- keydown,keypress,keyup三者之间的区别
最近看了Javascript高级教程中对过滤输入的介绍,想实现比如电话号码中不能包好非数值的字符,而相应文本中插入字符的操作是keypress事件,所以就想通过阻止这个事件的默认事件行为来阻止这个事件 ...
- keydown - > keypress - > keyup
英文输入法: 事件触发顺序:keydown - > keypress - > keyup 中文输入法: firfox:输入触发keydown,回车确认输入触发keyup chr ...
- 键盘事件之keydown keypress keyup区别
经过测试,显然事件执行的顺序是: keydown->keypress->keyup. 但是连续按一个按键的话,会一直触发:keydown keypress.直到你提起按键,会触发keyup ...
- 部分无线终端不响应键盘事件(keydown,keypress,keyup)的解决办法
在无线侧实现搜索显示smartbox功能的时候,会对输入框绑定keydown.keyup.keypress事件,从而在检测到输入框的值发生改变时,发出请求拉取smartbox的内容. 但是,在iPho ...
- 无线端不响应键盘事件(keydown,keypress,keyup)
今天在项目时,在android手机上使用输入法的智能推荐的词的话,不会触发keyup事件,一开始想到在focus时使用一个定时器,每隔100ms检测输入框的值是否发生了改变,如果改变了就作对应的处理, ...
- <span> <div> 局部 keydown ,keyup事件。页面部分div $(document) 无效,可能焦点,添加焦点。
前天改一个bug, js 实现的一个 面板拖拉,左右各两个列表,中间面板画线连接,页面左侧列表选中后,key 事件无效.右侧选中确有效,很奇怪,查看源码,左侧选中后,$(document).on(&q ...
- (转)KeyDown、KeyUp、KeyPress区别
Windows窗体通过引发键盘事件来处理键盘输入以响应Windows消息,大多数Windows窗体应用程序都通过处理键盘事件来以独占方式处理键盘输入. 1.按键的类型 Windows窗体将键盘输入标 ...
- 转载关于KeyPress和KeyDown事件的区别和联系
KeyDown:在控件有焦点的情况下按下键时发生. KeyPress:在控件有焦点的情况下按下键时发生. KeyUp:在控件有焦点的情况下释放键时发生. 1.KeyPress主要用来接收字母.数字等A ...
随机推荐
- uva11029 - Leading and Trailing
题目: 求n的k次方,然后将答案用前三位和最后三位表示. Sample Input 2 123456 1 123456 2 Sample Output 123...456 152...936 分析: ...
- JavaScript之cookie
JavaScript通过Cookie实现简单的用户登录状态的保存.Cookie可以跨越多个网页使用,但不能跨域名使用,也不同跨浏览器使用. 1.设置cookie function SetCookie( ...
- SpringMVC中采用简洁的配置实现文件上传
文件上传我们一般会有两种策略,一种是通过IO流上传,还有一种是通过表单上传,其实这两种在客户端实现起来都是很简单的,在服务端处理会略有差别,个人感觉IO上传代码简单,但是也有很多硬伤,还是表单上传更合 ...
- L10 安装网卡驱动
一.安装网卡驱动 1. 检查各种依赖包是否安装 2. 安装 加载网卡驱动: ip:
- Reset Password Functionality FAQ
In this Document Purpose Questions and Answers How can users request a password reset? How d ...
- 新浪SAE数据库信息(用户&密码&主地址)
用户名 : SAE_MYSQL_USER密 码 : SAE_MYSQL_PASS主库域名 : SAE_MYSQL_HOST_M从库域名 : SAE_MYSQL_HOST_S端 口 : SAE_MYS ...
- JFrame??
swing的三个基本构造块:标签.按钮.文本字段.但需要个地方安放他们,并希望用户如何处理他们.JFrame类就是解决这个问题————它是一个容器,允许程序员把其他组件添加到它里面,把它们组织起来,并 ...
- Delphi下重载窗体CreateParams翻转关闭按钮
type TForm1 = class(TForm) private { Private declarations } public { Public declarations } ...
- C#的DLL注册为COM,Delphi来调用
非常实用的东西!过去知道这个方法的话可以解决多少问题啊 首先建立一个C#的DLL工程,写一个类 //Test.csnamespace Test...{public class MyTest...{pu ...
- rpm安装软件(需管理员权限)
常用命名规范 linux-1.2.0-30.e16.i686.rpm rpm基本命令 安装rpm -i software.rpm 卸载rpm -e software 升级rpm -U software ...