javascript KeyDown、KeyPress和KeyUp事件的区别与联系

KeyDown:在控件有焦点的情况下按下键时发生。
KeyPress:在控件有焦点的情况下按下键时发生。
KeyUp:在控件有焦点的情况下释放键时发生。

1、KeyPress主要用来接收字母、数字等ANSI字符
KeyDown 和 KeyUP 事件过程通常可以捕获键盘除了PrScrn所有按键(这里不讨论特殊键盘的特殊键

2、KeyPress 只能捕获单个字符
KeyDown 和KeyUp 可以捕获组合键。

3、KeyPress 不显示键盘的物理状态(SHIFT键),而只是传递一个字符。KeyPress 将每个字符的大、小写形式作为不同的键代码解

释,即作为两种不同的字符。
KeyDown 和KeyUp 不能判断键值字母的大小。KeyDown 和 KeyUp 用两种参数解释每个字符的大写形式和小写形式:keycode — 显

示物理的键(将 A 和 a 作为同一个键返回)和 shift —指示 shift + key 键的状态而且返回 A 或 a 其中之一。

5、KeyPress 不区分小键盘和主键盘的数字字符。
KeyDown 和KeyUp 区分小键盘和主键盘的数字字符。

6、KeyDown、KeyUp事件是当按下 ( KeyDown ) 或松开 ( KeyUp ) 一个键时发生的。
由于一般按下键盘的键往往会立即放开(这和鼠标不同),所以这两个事件使用哪个差别不大。

而且,up和其他两者还有一个区别:要判断key修改后的状态必须用up。

(0)

相关推荐

  • winform拦截关闭按钮触发的事件示例

    用户关闭软件时,软件一般会给"是否确认关闭"的提示.通常,我们把它写在FormClosing 事件中,如果确定关闭,就关闭:否则把FormClosingEventArgs 的 Cancel 属性设置为 true,就取消了该窗体的关闭. 如果该窗体是主窗体,我们想在该窗体关闭时关闭整个应用程序,会遇到至少两种情况: (1)该窗体同时是启动窗体,即它是应用程序中所有窗体的父类,则整个应用程序会被关闭. (2)如果该窗体不是启动窗体,比如我们做了一个欢迎窗体,则应用程序中所有窗体的父类就是这

  • C# WinForm程序完全退出的问题解决

    1.this.Close();   只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出: 2.Application.Exit();  强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出: 3.Application.ExitThread(); 强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题: 4.System.Environment.Exit(0);   这是最彻底的退出方式,不管什么线程都被强制

  • C# winform编程中响应回车键的实现代码

    本文介绍在使用C#进行窗体(WinForm)编程时,如何设置在窗口上按回车键的响应事件,或者说要响应按钮. 在窗体上按回车键,我们可以设置程序触发一些事件.这些事件都要通过窗体的AcceptButton这个属性来进行绑定. 在窗体的Load函数中,我们设置this.AcceptButton,这里的this表示是窗体对象本身.而AcceptButton即响应Enter回车键的按钮.它的值为当前窗体中的一个Button类型的控件的名称. 复制代码 代码如下: private void Form1_L

  • javascript onkeydown,onkeyup,onkeypress,onclick,ondblclick

    这里给出一段测试代码: <script type="text/javascript"> document.onkeydown = function(){ document.getElementById("test").innerHTML += "keydown<br/>"; } document.onkeyup = function(){ document.getElementById("test").

  • winform模拟鼠标按键的具体实现

    今天朋友说被他们公司的学习网站恶心到了,下班后要他看学习资料,看完点下一页,而且一页必须停留多少时间才能点击下一页,想不看都不行,于是晚上我突发奇想要给他做一个模拟鼠标按键的程序,可以让鼠标定时间隔触发单击,顺便做下程序最小化到右下角. 首先要引用下user32.dll文件,电脑里就有,C:\Windows\System32搜索下出来了,复制出来放到debug目录下就行. 以下是解决方案代码 复制代码 代码如下: [DllImport("user32.dll", CharSet = C

  • jquery keypress,keyup,onpropertychange键盘事件

    起初用js 的onkeyup事件,但始终没能触发.该事件不知道别的什么地方监视了,js的事件有传递,也可以阻断,蛮麻烦,情况太多.找了好久,终于找到了一种解决方案,通过onpropertychange事件可以迎刃而解. 复制代码 代码如下: $("#textboxID").bind("onpropertychange", function(){ //alert( $(this).text() ); //自动截取的逻辑代码 }); firefox没有onpropert

  • WinForm中KeyDown,KeyPress和KeyUp的顺序与区别解析

    WinForm中的键盘按键有KeyDown,KeyPress和KeyUp事件.那么它们的顺序以及区别在哪里呢?本文就此作出如下分析: 一.顺序: 根据MSDN所讲,三者的顺序是:KeyDown>KeyPress>KeyUp. 二.区别: KeyDown和KeyPress很接近,都是在按键按下时候先后发生.KeyUp是放掉某个键之后发生的事件. 三.KeyDown和KeyPress: KeyDown的事件中属性是KeyEventArgs,其中包含三个重要属性: 1)KeyCode(返回一个Key

  • onkeyup,onkeydown和onkeypress的区别介绍

    msdn上有三者的区别: 名称 说明 onkeypress 这个事件在用户按下并放开任何字母数字键时发生.系统按钮(例如,箭头键和功能键)无法得到识别. onkeyup 这个事件在用户放开任何先前按下的键盘键时发生. onkeydown 这个事件在用户按下任何键盘键(包括系统按钮,如箭头键和功能键)时发生. ====================== 复制代码 代码如下: <html> <script> function checkForm(){ if(event.keyCode

  • winform 使用Anchor属性进行界面布局的方法详解

    每个控件的定位方法: 一.使用Anchor: Anchor分为Left.Top.Right.Bottom四个属性. 它们的含义如下: Top--表示控件中与父窗体(或父控件)相关的顶部应该保持固定. Bottom--表示控件中与父窗体(或父控件)相关的底边应该保持固定. Left--表示控件中与父窗体(或父控件)相关的左边缘应该保持固定. Right--表示控件中与父窗体(或父控件)相关的右边缘应该保持固定. 一般控件默认为Left | Top,定位根据为左上方的边界.控件的Anchor为:To

  • 解决C# winForm自定义鼠标样式的两种实现方法详解

    第一种:(调用系统API)首先引入两个命名空间 复制代码 代码如下: using System.Runtime.InteropServices;using System.Reflection; 导入API 复制代码 代码如下: [DllImport("user32.dll")]public static extern IntPtr LoadCursorFromFile(string fileName);[DllImport("user32.dll")]public

随机推荐