求C# KeyPress 事件中,所有e.KeyChar值的意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求C# KeyPress 事件中,所有e.KeyChar值的意思相关的知识,希望对你有一定的参考价值。

谢谢各位,有了这些值我就可以做限制输入了。
帮个忙啦

if (e.KeyChar >= '0' && e.KeyChar <= '9' || e.KeyChar == '.' || e.KeyChar == 8)

e.Handled = false;
return;

e.Handled = true;

只能输入0-9和小数点。
==========
if (e.KeyChar == 13)

...

判断是否回车
参考技术A 常用ASCII码表 你自己看看应该就明白了

键盘 ASCII码 键盘 ASCII码
ESC 27 7 55
SPACE 32 8 56
! 33 9 57
" 34 : 58
# 35 ; 59
$ 36 < 60
% 37 = 61
& 38 > 62
' 39 ? 63
( 40 @ 64
) 41 A 65
* 42 B 66
+ 43 C 67
' 44 D 68
- 45 E 69
. 46 F 70
/ 47 G 71
0 48 H 72
1 49 I 73
2 50 J 74
3 51 K 75
4 52 L 76
5 53 M 77
6 54 N 78
O 79 g 103
P 80 h 104
Q 81 i 105
R 82 j 106
S 83 k 107
T 84 l 108
U 85 m 109
V 86 n 110
W 87 o 111
X 88 p 112
Y 89 q 113
Z 90 r 114
[ 91 s 115
\ 92 t 116
] 93 u 117
^ 94 v 118
_ 95 w 119
` 96 x 120
a 97 y 121
b 98 z 122
c 99 123
d 100 | 124
e 101 125
f 102 ~ 126

另外2个特殊ASCII码:回车=13,换行=10本回答被提问者采纳
参考技术B 这个值你可以找AsicII码对照表,很详细,所有键对应的码值都有
e.KeyChar其实就是限制这些键对应的码值,这样按键就不起作用
参考技术C e.KeyChar获取的是你按下键的字符
可以通过这个事件做输入过滤处理
参考技术D e 是事件信息。获取事件信息的数据(按下的key)也就是获取你按下的键盘字符

keydown/keypress/keyup

一个典型的按键会产生所有这三种事件,依次是keydown,keypress,然后是按键释放时候的keyup。
keydown和keyup比较底层,而keypress比较高级。这里所谓的高级是指,当用户按下shift + 1时,keypress是对这个按键事件进行解析后返回一个可打印的“!”字符,而keydown和keyup只是记录了shift + 1这个事件。
但是keypress只能针对一些可以打印出来的字符有效,而对于功能按键,如F1-F12、Backspace、Enter、Escape、 PageUP、PageDown和箭头方向等,就不会产生keypress事件,但是可以产生keydown和keyup事件。然而在FireFox中,功能按键是可以产生keypress事件的。
传递给keydown、keypress和keyup事件句柄的事件对象有一些通用的属性。如果Alt、Ctrl或Shift和一个按键一起按下,这通过事件的altKey、ctrlKey和shiftKey属性表示,这些属性在FireFox和IE中是通用的。

以上是关于求C# KeyPress 事件中,所有e.KeyChar值的意思的主要内容,如果未能解决你的问题,请参考以下文章

C#中,Keypress这个键盘事件是怎么弄出来的。

C# - 在键盘上按下两个按钮后准备事件[重复]

[C#]C# 如何捕获键盘按钮和组合键以及KeyPress/KeyDown事件之间的区别 (附KeyChar/KeyCode值)

C#开发wince平台下的winform程序,textbox的keypress事件无法触发,本意是想限制textbox只能输入数字。

c# keydown事件问题

js document 触发按键事件