`
mqzsweet
  • 浏览: 135183 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

KeyDown,KeyPress 和KeyUp 之区别

阅读更多

转自:http://www.cnblogs.com/stan0714/archive/2008/10/12/1309573.html

 

1.这三个事件的顺序是怎么样的?

2.KeyDown 触发后,KeyUp是不是一定触发?

3.三个事件的定义

4.KeyDown、KeyUp 和KeyPress 之间的区别

5.如何区分是否按的是小键盘?

6.PrScrn按键三个事件能够捕获吗?

7.{菜单键}和{开始键}KeyPress能够捕获吗?

(一)键事件按下列顺序发生:

KeyDown

KeyPress

KeyUp

(二)KeyDown触发后,不一定触发KeyUp,当KeyDown 按下后,拖动鼠标,那么将不会触发KeyUp事件。

(三)定义
 KeyDown:在控件有焦点的情况下按下键时发生。 
 KeyPress:在控件有焦点的情况下按下键时发生。(下面会说和KeyDown 的区别)
 KeyUp:在控件有焦点的情况下释放键时发生。
(四)KeyPress 和KeyDown 、KeyPress之间的区别
 1.KeyPress主要用来捕获数字(注意:包括Shift+数字的符号)、字母(注意:包括大小写)、小键盘等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜单键}、{开始键}和方向键外的ANSI字符KeyDown 和KeyUp 通常可以捕获键盘除了PrScrn所有按键(这里不讨论特殊键盘的特殊键)
 2.KeyPress 只能捕获单个字符KeyDown 和KeyUp 可以捕获组合键。
 3.KeyPress 可以捕获单个字符的大小写
 4.KeyDown和KeyUp 对于单个字符捕获的KeyValue 都是一个值,也就是不能判断单个字符的大小写。
 5.KeyPress 不区分小键盘和主键盘的数字字符。KeyDown 和KeyUp 区分小键盘和主键盘的数字字符。
 6.其中PrScrn 按键KeyPress、KeyDown和KeyUp 都不能捕获。

(五)系统组合键的判定

在使用键盘的时候,通常会使用到CTRL+SHIFT+ALT 类似的组合键功能。对于此,我们如何来判定?

通过KeyUp 事件能够来处理(这里说明一下为什么不用KeyDown,因为在判定KeyDown的时候,CTRL、SHIFT和ALT 属于一直按下状态,然后再加另外一个键是不能准确捕获组合键,所以使用KeyDown 是不能准确判断出的,要通过KeyUp 事件来判定 )

这里简单的列举出CTRL+其它键的组合判定代码:

private void Form3_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.Control)
            {
                MessageBox.Show("KeyUp:Ctrl+" + e.KeyValue.ToString());
            }
        }

 

(六)捕获PrScrn按键事件

 通过一种钩子的方式可以判定PrScrn 按键事件,钩子可以获取任何键盘事件。

     这里给出CodeProject 上面的开源代码的解决方案。大家有兴趣自己研究吧:)。

 

Global System Hooks in .NET

分享到:
评论

相关推荐

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

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

    C#WinForm中的KeyDownKeyPress和KeyUp事件相关知识点

    ### C# WinForm中的KeyDown, KeyPress和KeyUp事件相关知识点 #### 一、按键的类型与识别 在C# WinForm应用中,处理用户的键盘输入是常见需求之一。Windows窗体通过引发键盘事件来响应用户的键盘操作。这些事件主要...

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

    在WinForm应用开发中,处理键盘输入事件时,常常会遇到`KeyDown`、`KeyPress`和`KeyUp`这三个事件。了解它们之间的顺序和差异对于编写响应用户输入的代码至关重要。以下是对这三个事件的详细解析: 1. **顺序**: ...

    jquery 键盘事件 keypress() keydown() keyup()用法总结

    3. keypress事件主要用来接收字母、数字等ANSI字符,而keydown和keyup事件过程可以处理不被keypress识别的击键,如功能键(F1-F12)、编辑键、定位键以及这些键和键盘换档键的组合等。 特别地,在处理组合键如Ctrl+...

    输入法的回车与消息发送快捷键回车的冲突解决方法

    keydown事件发生在按键被按下的时候,接着触发keypress,松开按键的时候触发keyup事件 中文输入法: firfox:输入触发keydown,回车确认输入触发keyup chrome:输入触发keydown、keyup,回车确认输入只触发keydown ...

    jquery keypress,keyup,onpropertychange键盘事件

    `keyup`和`keydown`事件都可用于非打印键,但`keyup`更适合于响应用户输入的结束。 3. **`onpropertychange`事件**: `onpropertychange`是Internet Explorer特有的事件,用于检测DOM元素属性的变化,包括文本框...

    深入理解JQuery keyUp和keyDown的区别

    `keyup`和`keydown`是两种常见的键盘事件,它们都与用户的按键操作紧密相关,但触发的时机有所不同。本文将深入探讨这两者的差异以及它们在实际应用中的作用。 `keydown`事件在用户按下键盘上的任意键时触发,它...

    js键盘事件全面控制_兼容FireFox和IE

    JS 键盘事件可以分为三种类型:keydown、keypress 和 keyup,它们分别对应 onkeydown、onkeypress 和 onkeyup 这三个事件句柄。在这三个事件类型中,keydown 和 keyup 比较底层,而 keypress 比较高级。 浏览器的...

    javascript 按键事件(兼容各浏览器)

    在本文中,我们首先介绍了JavaScript中处理键盘按键事件的三种不同类型的事件:keydown、keypress和keyup,以及它们对应的事件句柄onkeydown、onkeypress和onkeyup。这些事件类型在处理按键时是有顺序和差异的:首先...

    最全面的按键精灵教程.pdf

    键盘命令是按键精灵教程的基础部分,包括GetLastKey、KeyDown、KeyPress和KeyUp四个方面的知识点: 1. GetLastKey:获取最后按下的键的ASCII码。 2. KeyDown:检测键盘按键的状态,包括KeyDownS和KeyDownH两个方面...

    node-keyupdown:[实验] 在 nodejs 上模拟 keyup 和 keydown

    在 nodejs 上模拟 keyup 和 keydown。 样本 var keydownup = require ( "./index" ) keydownup ( process . stdin ) process . stdin . on ( 'keydown' , function ( ) { console . log ( "keydown" ) } ) ...

    浅谈js键盘事件全面控制

    首先,我们需要明确浏览器中与键盘事件相关的主要类型,它们分别是keydown、keypress和keyup事件。keydown事件在按键按下时触发,而keypress事件紧随其后,在按键被按下并能够产生可打印字符时触发。keyup事件则在...

    利用Keydown事件阻止用户输入实现代码

    先了解下各事件的区别 KeyDown:在控件有焦点的情况下按下键时发生 KeyPress:在控件有焦点的情况下按下键时发生 KeyUp: 在控件有焦点的情况下释放键时发生 1、KeyPress主要用来接收字母、数字等ANSI字符。...

    js 键盘记录实现(兼容FireFox和IE)

    用js实现键盘记录,要关注浏览器的三种按键事件类型,即keydown,keypress和keyup,它们分别对应onkeydown、onkeypress和onkeyup这三个事件句柄。一个典型的按键会产生所有这三种事件,依次是keydown,keypress,...

    使用JS监听键盘按下事件(keydown event)

    首先,我们需要了解JavaScript中的键盘事件主要有三个:keydown、keypress和keyup。其中,keydown事件在用户按下键盘上的任意键时触发,keypress事件在按键被按下并产生字符时触发,keyup事件则在键盘键被释放时触发...

    C#资源键盘对应asc

    在C#中,键盘事件通常通过控件(如Form或TextBox)的键盘事件处理程序来捕获,如KeyDown、KeyPress和KeyUp事件。这些事件提供了关于用户按下或释放键盘键的信息。例如,`KeyDown`事件会在按键被按下时触发,`KeyUp`...

    VB程序设计第十一章PPT教案学习.pptx

    VB程序设计第十一章主要讲解了与键盘交互相关的事件,包括KeyPress、KeyDown和KeyUp事件,这些事件在处理用户输入时非常关键。以下是这些知识点的详细解释: 1. **KeyPress事件**: - KeyPress事件是当用户按下并...

    VB KeyDown

    在VB(Visual Basic)编程环境中,`KeyDown`事件是一个至...通过熟练掌握`KeyDown`事件,你可以极大地提高你的VB程序的交互性和功能性。无论是简单的文本处理还是复杂的用户输入逻辑,`KeyDown`都是不可或缺的一部分。

Global site tag (gtag.js) - Google Analytics