当前位置:首页 > Web开发 > 正文

CTRL、SHIFT和ALT 属于一直按下状态

2024-03-31 Web开发

 js keyup、keypress和keydown事件  详解

js keyup、keypress和keydown事件都是有关于键盘的事件

当一个按键被pressed 或released在每一个现代浏览器中,都可能有三种客户端事件。

keydown event

keypress event

keyup event

keydown事件产生在键盘的键被按下的时候,,接下来触发keypress事件。keyup 事件在按键被释放的时候触发。

这三个事件在页面中的使用要领如下例:

<input  onKeyUp="keyup()" />

<input   onkeypress="keypress()" />

<input   onkeydown="keydown()" />

对应的js函数:

function keyup(){ ...}

function keypress(){ ...}

function keydown(){ ...}

注意:

KeyDown触发后,不必然触发KeyUp,当KeyDown 按下后,拖动鼠标,那么将不会触发KeyUp事件。

KeyPress主要用来捕获数字(注意:包孕Shift+数字的标记)、字母(注意:包孕巨细写)、小键盘等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜单键}、{开始键}和标的目的键外的ANSI字符

KeyDown 和KeyUp 凡是可以捕获键盘除了PrScrn所有按键(这里不讨论特殊键盘的特殊键)

KeyPress 只能捕获单个字符

KeyDown 和KeyUp 可以捕获组合键。

KeyPress 可以捕获单个字符的巨细写

KeyDown和KeyUp 对付单个字符捕获的KeyValue 都是一个值,也就是不能判断单个字符的巨细写。

KeyPress 不区分小键盘和主键盘的数字字符。

KeyDown 和KeyUp 区分小键盘和主键盘的数字字符。

此中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 按键事件,钩子可以获取任何键盘事件。

以下是一些键盘上的键对应的Code:以下是一些键盘上的键对应的Code:

  键盘按键                          对应的数码

backspace   8  
tab   9  
enter   13  
shift   16  
ctrl   17  
alt   18  
pause/break   19  
caps lock   20  
escape   27  
page up   33  
Space   32  
page down   34  
end   35  
home   36  
arrow left   37  
arrow up   38  
arrow right   39  
arrow down   40  
insert   45  
delete   46  
0   48  
1   49  
2   50  
3   51  
4   52  
5   53  
6   54  
7   55  
8   56  
9   57  
a   65  
b   66  
c   67  
d   68  
e   69  
f   70  
g   71  
h   72  
i   73  
j   74  
k   75  
l   76  
m   77  
n   78  
o   79  
p   80  
q   81  
r   82  
s   83  
t   84  
u   85  
v   86  
w   87  
x   88  
y   89  
z   90  
left window key   91  
right window key   92  
select key   93  
numpad 0   96  
numpad 1   97  
numpad 2   98  
numpad 3   99  
numpad 4   100  
numpad 5   101  
numpad 6   102  
numpad 7   103  
numpad 8   104  
numpad 9   105  
multiply   106  
add   107  
subtract   109  
decimal point   110  
divide   111  
f1   112  
f2   113  
f3   114  
f4   115  
f5   116  
f6   117  
f7   118  
f8   119  
f9   120  
f10   121  
f1  

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/32366.html