.KeyDown事件中是否有VB.Net和C#返回的密钥代码列表?返回的值与通常的ASCII代码不匹配。
答案 0 :(得分:5)
这些值都是Keys Enumeration的一部分。
这些的实际值(与所有枚举一样)是任意,因此您永远不应编写将其与数值进行比较的代码。例如,他们可能会通过框架更新来改变价值。
恰好A-Z
对应A-Z
的ASCII值,但你不应该依赖于此。
Intellisense会在适当的时候显示这些键(包含每个单独的值):
您还可以在对象浏览器(F11)中搜索Windows.System.Forms.Keys
,您将看到完整列表(带有值):
答案 1 :(得分:0)
0无按键
1 LEFT MOUSE按钮
2右鼠标按钮
3 CANCEL KEY
4 MIDDLE MOUSE按钮(三键鼠标)
5第一个x鼠标按钮(五键鼠标)
6第二个x鼠标按钮(五键鼠标)
7未定义
8 BACKSPACE
9 TAB
10 LINEFEED键
11未定义
12 CLEAR键
13 RETURN / ENTER KEY(字母旁边)也是ENTER KEY(在数字键盘上)
14未定义
15未定义
16 SHIFT
17 CTRL
18 ALT
19 PAUSE / BREAK
20 CAPS LOCK
21 IME Hanguel模式键/ IME假名模式键
22未定义
23 IME Junja模式键
24 IME最终模式键
25 IME Hanja模式键/ IME汉字模式键
26未定义
27 ESC
28 IME转换键
29 IME非转换密钥
30 IME接受键
31 IME模式更改键
32空格键
33 PAGE UP / PGUP KEY
34 PAGE DOWN / PGDN KEY
35结束
36 HOME
37左箭头键
38向上箭头
39正确的箭头键
40 DOWN ARROW KEY
41 SELECT键
42 PRINT键
43 EXECUTE键
44 PRINT SCREEN键
45 INSERT
46删除
47帮助键
48 0 /)KEY ON KEYBOARD(字母上方)
49 1 /!键盘上的键(字母上方)
50 2 / @ KEY ON KEYBOARD(字母上方)
51 3 /#KEY ON KEYBOARD(上面的字母)
52 4 / $ KEY ON KEYBOARD(上面的字母)
53 5 /%KEY ON KEYBOARD(字母上方)
54 6 / ^键盘上的键(字母上方)
55 7 /&键盘上的键(字母上方)
56 8 / * KEY ON KEYBOARD(上面的字母)
57 9 /(键盘上的键盘(字母上方)
58未定义
59未定义
60未定义
61未定义
62未定义
63未定义
64未定义
65 A和一把钥匙
66 B和b KEY
67 C和c KEY
68 D和d KEY
69 E和e KEY
70 F和f KEY
71 G和g KEY
72 H和h KEY
73我和我的关键
74 J和j KEY
75 K和k KEY
76 L和l KEY
77 M和m KEY
78 N和n KEY
79 O和o KEY
80 P和p KEY
81 Q和q KEY
82 R和r KEY
83 S和s KEY
84 T和t KEY
85 U和你的钥匙
86 V和v KEY
87 W和w KEY
88 X和x KEY
89 Y和y KEY
90 Z和z KEY
91左侧Windows徽标键
92正确的Windows徽标键
93上下文菜单键(模拟右键单击的键)
94保留
95键盘上的SLEEP / STANDBY键
96 0 KEY(在数字键盘上)
97 1 KEY(在数字键盘上)
98 2 KEY(在数字键盘上)
99 3 KEY(在数字键盘上)
100 4 KEY(在数字键盘上)
101 5 KEY(在数字键盘上)
102 6 KEY(在数字键盘上)
103 7 KEY(在数字键盘上)
104 8 KEY(在数字键盘上)
105 9 KEY(在数字键盘上)
106 * KEY(在数字键盘上)
107 + KEY(在数字键盘上)
108分隔符键(数字键盘上的ENTER键)
109 - KEY(在数字键盘上)
110。 KEY(在数字键盘上)
111 / KEY(在数字键盘上)
112 F1
113 F2
114 F3
115 F4
116 F5
117 F6
118 F7
119 F8
120 F9
121 F10
122 F11
123 F12
124 F13
125 F14
126 F15
127 F16
128 F17
129 F18
130 F19
131 F20
132 F21
133 F22
134 F23
135 F24
136未分配
137未分配
138未分配
139未分配
140未分配
141未分配
142未分配
143未分配
144 NUM LOCK
145 SCROLL LOCK
146 OEM特定
147 OEM特定
148 OEM特定
149 OEM特定
150 OEM特定
151未分配
152未分配
153未分配
154未分配
155未分配
156未分配
157未分配
158未分配
159未分配
160左侧SHIFT键
161右侧SHIFT键
162左CTRL键
163右CTRL键
164左ALT键
165正确的ALT键
166 BROWSER BACK KEY ON KEYBOARD / INTERNET-CONTROL(Windows 2000或 后)
167 BROWSER FORWARD KEY ON KEYBOARD / INTERNET-CONTROL(Windows 2000或 后)
168键盘/互联网控制上的BROWSER刷新键(Windows 2000或Windows 2000) 后)169 BROWSER STOP键键盘/互联网控制(Windows 2000或 后)
170浏览器搜索键盘/互联网控制键(Windows 2000或 后)
171浏览器最喜欢的键盘/互联网控制键(Windows 2000 或以后)
172浏览器键盘/互联网控制(Windows 2000或Windows) 后)
173 MUTE KEY ON KEYBOARD / MEDIA-CONTROL(Windows 2000或更高版本)
174 VOLUME DOWN KEY键盘/媒体控制(Windows 2000或更高版本)
键盘/媒体控制上的175个音量增大键(Windows 2000或更高版本)
176媒体下一曲目键(Windows 2000或更高版本)
177媒体上一曲目键(Windows 2000或更高版本)
178媒体停止键(Windows 2000或更高版本)
179媒体播放暂停键(Windows 2000或更高版本)
180启动邮件密钥/ E-MAIL KEY ON KEYBOARD / INTERNET-CONTROL (Windows 2000或更高版本)
181选择媒体键/ MEDIA KEY ON KEYBOARD / MEDIA-CONTROL (Windows 2000或更高版本)
182启动应用程序一键(Windows 2000或更高版本)
183启动应用程序两个键(Windows 2000或更高版本)
184保留
185保留
186;并且:KEY187 = / + KEY ON KEYBOARD(字母上方)
188,< KEY
189 - / _键盘上的键盘(上面的字母)
190 p。和> KEY191 /和? KEY
192~和'KEY ON KEYBOARD
193保留
194保留
195保留
196保留
197保留
198保留
199保留
200保留
201保留
202保留
203保留
204保留
205保留
206保留
207保留
208保留
209保留
210保留
211保留
212保留
213保留
214保留
215保留
216未分配
217未分配
218未分配
219 [和{KEY
220 \和| KEY
221]和} KEY
222'和#KEY
223用于杂项字符;它可以通过键盘变化
224保留
225 OEM特定
226 RT 102键盘上的OEM尖括号或反斜杠键 (Windows 2000或更高版本)
227 OEM特定
228 OEM特定
229 PROCESS KEY键(IME PROCESS KEY)
230 Oem具体
231用于传递Unicode字符,就像它们是击键一样(Windows 2000年或以后)
232未分配
233 OEM特定
234 OEM特定
235 OEM特定
236 OEM特定
237 OEM特定
238 OEM特定
239 OEM特定
240 OEM特定
241 OEM特定
242 OEM特定
243 OEM特定
244 OEM特定
245 OEM特定
246 ATTN键
247 CRSEL键
248 EXSEL键
249 ERASE EOF键
250 PLAY键
251 ZOOM键
252留作将来使用
253 PA1键
254 CLEAR键
255其他/键盘上的MISC键
答案 2 :(得分:0)
打印一份简单的报告:
String report = String.Join(Environment.NewLine, Enum
.GetValues(typeof(Keys))
.OfType<Keys>()
.Select(key => String.Format("{0,6} : {1}", (int) key, key)));
Console.Write(report);
你会得到
0 : None
1 : LButton
2 : RButton
3 : Cancel
4 : MButton
5 : XButton1
6 : XButton2
8 : Back
9 : Tab
....
65 : A
66 : B
67 : C
68 : D
69 : E
....
252 : NoName
253 : Pa1
254 : OemClear
65535 : KeyCode
65536 : Shift
131072 : Control
262144 : Alt
-65536 : Modifiers
请注意,某些密钥代码(例如'A'..'Z'
)与 ASCII值对应。但是,键盘的键和字符是不同的事物(如果你有一些奇特的键盘布局那么?) em>不要依赖这个信件:
// If key "F" is downed
if ((e.KeyCode == Keys.F) && (e.Modifiers == Keys.None)) {
// Actual character can well be 'А' (on my workstation - Russian layout)
...
}
答案 3 :(得分:-1)
您可以使用Keys.xx
,其中xx来自下一个列表https://msdn.microsoft.com/en-us/library/system.windows.forms.keys(v=vs.110).aspx。