当我按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?
答案 0 :(得分:2)
作为对Keys
枚举的KeyCode
演员?
((Keys)e.KeyValue).ToString();
答案 1 :(得分:0)
当您尝试获取字符值为113时获取字母q的原因是因为它映射到q的ASCII值
并回答你的其余问题
我在这里发现了这篇文章http://bytes.com/topic/c-sharp/answers/429451-keycode-keyvalue-keydata
有KeyUp,KeyDown和KeyPress事件。只有KeyPress事件 提供字符代码。因为这段代码,我不会说ASCII 取决于当前的语言设置;甚至一个代码也可以 由于按下一系列键而产生。即便在 最简单的英语语言设置案例没有1:1的映射 密钥和字符代码之间,例如密钥A为' a'生成ASCII。要么 密钥A为' A'生成ASCII。如果cpaslock打开或按下shift或 '一个'两个封锁都打开并且按下了移位等。甚至更多 是不产生ASCII码的键 - ctrl,alt,shift,F1,F2。, Fx,Windows键等
答案 2 :(得分:0)
通常,功能键实际上不是字符。通常,它们被映射为键组合,如(0,113)。为什么要使用F2的字符代码?