[C#.Net]KeyDown(KeyUp)和KeyPress的区别

在keyDown事件里使用keyValue;在keyPress事件里使用keyChar。

keyValue转换keyChar:(char)keyValue

验证只有数字和backSpace

e.handled只能在KeyPress内有效果

if (char.IsNumber(e.KeyChar)||e.KeyChar==(char)8)
{
    e.Handled = false;
}
else
{
    e.Handled = true;
}

验证只有数字、一个小数点和backspace(适用于验证价格)

if (char.IsNumber(e.KeyChar) || e.KeyChar == (char)8 || (e.KeyChar == '.' && !this.txtUnitPrice.Text.Contains('.')))
{
      e.Handled = false;
 }
 else
{
      e.Handled = true;
}

表1:字母和主键盘上的数字

字母和主键盘上的数字
KeyCode keyValue KeyCode keyValue KeyCode keyValue KeyCode keyValue
A 65 J 74 S 83 1 49
B 66 K 75 T 84 2 50
C 67 L 76 U 85 3 51
D 68 M 77 V 86 4 52
E 69 N 78 W 87 5 53
F 70 O 79 X 88 6 54
G 71 P 80 Y 89 7 55
H 72 Q 81 Z 90 8 56
I 73 R 82 0 48 9 57

表2:右侧数字键盘,F1按键

KeyCode keyValue KeyCode keyValue KeyCode keyValue KeyCode keyValue
0 96 8 104 F1 112 F7 118
1 97 9 105 F2 113 F8 119
2 98 * 106 F3 114 F9 120
3 99 + 107 F4 115 F10 121
4 100  | 108  F5 116 F11 122
5 101 - 109 F6 117 F12 123
6 102 . 110        
7 103 / 111        

主键盘数字:

表3:控制键键码值(keyCode)

KeyCode keyValue KeyCode keyValue KeyCode keyValue KeyCode keyValue
BackSpace 8 Esc 27 Right Arrow 39 -_ 189
Tab 9 Spacebar 32 Down Arrow 40 .> 190
Clear 12 Page Up 33 Insert 45 /? 191
Enter 13 Page Down 34 Delete 46 `~ 192
Shift 16 End 35 Num Lock 144 [{ 219
Control 17 Home 36 ;: 186 /| 220
Alt 18 Left Arrow 37 =+ 187 ]} 221
Cape Lock 20 Up Arrow

猜你喜欢

转载自www.cnblogs.com/masonlu/p/9274344.html