当我按 F2 然后在我的表单 keydown 事件中遵循代码返回 113
MessageBox.Show(e.KeyValue.ToString());//If pressed key is F2 ->113
但是当我想从下面的代码中获取 KeyValue 中的 Char 时,它会返回“q”
MessageBox.Show(Char.ConvertFromUtf32(113));//return q
如何从 113 keyvalue 到达 F2 ?
当我按 F2 然后在我的表单 keydown 事件中遵循代码返回 113
MessageBox.Show(e.KeyValue.ToString());//If pressed key is F2 ->113
但是当我想从下面的代码中获取 KeyValue 中的 Char 时,它会返回“q”
MessageBox.Show(Char.ConvertFromUtf32(113));//return q
如何从 113 keyvalue 到达 F2 ?
作为枚举的KeyCode
演员?Keys
((Keys)e.KeyValue).ToString();
通常,功能键实际上不是字符。通常,它们被映射为组合键,例如 (0, 113)。为什么要 F2 的字符代码?
当您尝试获取 char 值 113 时得到字母 q 的原因是因为它映射到 q 的 ASCII 值
并回答你剩下的问题
Windows 键盘键的 ascii 代码和功能键 (F1 - F12) 和其他键(如 shift、capslock、backspace、ctrl 等)的代码
我在这里找到这篇文章http://bytes.com/topic/c-sharp/answers/429451-keycode-keyvalue-keydata
有 KeyUp、KeyDown 和 KeyPress 事件。只有 KeyPress 事件提供字符代码。我没有说 ASCII,因为此代码取决于当前的语言设置;甚至可以通过按下一系列键来生成一个代码。即使在使用英语语言设置的最简单情况下,键和字符代码之间也没有 1:1 映射,例如键 A 为“a”生成 ASCII,或者如果 cpaslock 开启或按下 shift 或“a”,键 A 为“A”生成 ASCII ' 两个大写锁定都打开并按下 shift 等。甚至还有不产生 ASCII 代码的键 - ctrl、alt、shift、F1、F2.、Fx、Windows 键等