英国键盘的 .KeyDown 事件返回的键码是什么

What are the Keycodes returned by the .KeyDown event for UK Keyboards

.KeyDown 事件中是否有 VB.Net 和 C# 返回的键码列表?返回的值与通常的 ASCII 代码不匹配。

0 没有按键

1 鼠标左键

2 鼠标右键

3 取消键

4 鼠标中键(three-button 鼠标)

5第x个鼠标按键(five-button鼠标)

6第二个x鼠标键(five-button鼠标)

7 未定义

8 回SPACE

9 制表符

10 换行键

11 未定义

12个清除键

13 RETURN/ENTER KEY(字母旁边)也 ENTER KEY(在 number-pad 上)

14 未定义

15 未定义

16 班

17 CTRL

18 备用

19 暂停/休息

20 大写锁定

21 IME韩语模式键/ IME假名模式键

22 未定义

23 IME Junja 模式键

24 IME最终模式键

25个输入法汉字模式键/输入法汉字模式键

26 未定义

27转

28个IME转换键

29 IME 非转换键

30 输入法接受键

31 输入法模式切换键

32 SPACE 栏

33 PAGE UP / PGUP 键

34 Page DOWN / PGDN KEY

35 结束

36 家

37 向左箭头键

38 向上箭头键

39 右箭头键

40 向下箭头键

41 SELECT 键

42打印键

43 EXECUTE键

44 PRINT SCREEN 键

45 插入

46 删除

47 帮助键

48 0/) KEY ON KEYBOARD(以上字母)

49个1/! KEY ON KEYBOARD(字母上方)

50 2/@ KEY ON KEYBOARD(以上字母)

51 3/# KEY ON KEYBOARD(以上字母)

52 4/$ KEY ON KEYBOARD(以上字母)

53 5/% KEY ON KEYBOARD(以上字母)

54 6/^ KEY ON KEYBOARD(以上字母)

55 7/& KEY ON KEYBOARD(以上字母)

56 8/* KEYBOARD(以上字母)

57 9/( KEY ON KEYBOARD(以上字母)

58 未定义

59 未定义

60 未定义

61 未定义

62 未定义

63 未定义

64 未定义

65个A和一个KEY

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我和我KEY

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和u KEY

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 CONTEXT-MENU 键(模拟 RIGHT-MOUSE 单击的键)

94 已保留

95 SLEEP/STANDBY 键盘上的键

96 0 键(在 number-pad 上)

97 1 个键(在 number-pad 上)

98 2 KEY(在 number-pad 上)

99 3 KEY(在 number-pad 上)

100 4 键(在 number-pad 上)

101 5 键(在 number-pad 上)

102 6 键(在 number-pad 上)

103 7 键(在 number-pad 上)

104 8 键(在 number-pad 上)

105 9 键(在 number-pad 上)

106 * 密钥(在 number-pad 上)

107 + 键(在 number-pad 上)

108分隔键(number-pad上的ENTER键)

109 - 密钥(在 number-pad 上)

110。关键(在number-pad)

111 / KEY(在 number-pad 上)

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 数字锁定

145 滚动锁定

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 键盘上的浏览器返回键 / INTERNET-CONTROL(Windows 2000 或 稍后)

167 键盘上的浏览器前进键 / INTERNET-CONTROL(Windows 2000 或 稍后)

168 键盘上的浏览器刷新键 / INTERNET-CONTROL(Windows 2000 或 稍后)

169 键盘上的浏览器停止键 / INTERNET-CONTROL(Windows 2000 或 稍后)

170 键盘上的浏览器搜索键 / INTERNET-CONTROL(Windows 2000 或 稍后)

171 键盘上的浏览器收藏夹键 / INTERNET-CONTROL (Windows 2000 或更高版本)

172 键盘上的浏览器主页键 / INTERNET-CONTROL(Windows 2000 或 稍后)

173 键盘上的静音键/MEDIA-CONTROL(Windows 2000 或更高版本)

174 键盘上的音量减小键 / MEDIA-CONTROL(Windows 2000 或更高版本)

175 键盘上的音量增大键 / MEDIA-CONTROL(Windows 2000 或更高版本)

176 媒体下一曲目密钥(Windows 2000 或更高版本)

177 媒体上一曲目密钥(Windows 2000 或更高版本)

178 媒体停止键(Windows2000 或更高版本)

179 媒体播放暂停键(Windows2000 或更高版本)

180 启动邮件键 / E-MAIL KEY ON KEYBOARD / INTERNET-CONTROL (Windows 2000 年或以后)

181 select 媒体键 / 键盘上的媒体键 / MEDIA-CONTROL (Windows 2000 年或以后)

182启动应用一键(Windows2000以上)

183启动应用二键(Windows2000以上)

184 预留

185 预留

186;和:关键

187 =/+ 键盘上的按键(以上字母)

188 和 < 键

189 -/_ KEYBOARD(以上字母)

190。和 > 钥匙

191 / 和 ?关键

192 ~ 和 ` 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 [ 和 { 键

220 \ 和 |关键

221] 和 } 键

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 其他/杂项键盘上的 EY

这些值都是Keys Enumeration的一部分。

这些(与所有枚举一样)的实际值是任意,因此您永远不应编写将其与数值。例如,他们可能会通过框架更新来改变价值。

碰巧 A-Z 对应于 A-Z 的 ASCII 值,但同样你不应该依赖于此。

Intellisense 会在适当的时候向您显示这些键(以及每个单独的值):

您还可以在对象浏览器 (F11) 中搜索 Windows.System.Forms.Keys,您将看到完整列表(包含值):

您可以使用 Keys.xx,其中 x 来自下一个列表 https://msdn.microsoft.com/en-us/library/system.windows.forms.keys(v=vs.110).aspx

打印一份简单的报告:

  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 值。然而,键盘的键字符不同的东西(如果你有一些异国情调的键盘布局?) 所以不要依赖这个对应关系:

 // If key "F" is downed
 if ((e.KeyCode == Keys.F) && (e.Modifiers == Keys.None)) {
   // Actual character can well be 'А' (on my workstation - Russian layout)
   ...
 }