C#如何将虚拟键码转换为char?

我正在尝试将虚拟键码映射到char。

我的代码使用ProcessCmdKey来监听WM_KEYDOWN,这使我可以访问所按下的键。例如,当我按单引号时,我会得到一个键222,我想将它映射到代表...您猜对了...单引号的keychar 39。

我的开发环境是:-.net Framework 2.0-UserControl放置在很多地方

你知道这个问题的答案吗?


函数式编程
浏览 596回答 3
3回答

一只甜甜圈

是的,我确实使用了该MapVirtualKey方法。但是我期待更多有关如何使用它的细节:DllImport要使用的指令,enum特定于字符映射的指令等。我不喜欢这些答案,在Google上停留大约5秒钟,然后提出一个解决方案:真正的挑战是将所有内容放在一起,而不必浪费大量时间在无样本的MSDN页面或其他编码论坛上为了得到你的答案。没有冒犯的根基,但是您的回答(即使是很好)也没问题,因为即使在论坛上发布我的问题之前我也有这个答案!因此,您去了,我要发布我想要的东西-一个现成的C#解决方案:1-将此指令放在您的类中:[DllImport("user32.dll")]static extern int MapVirtualKey(uint uCode, uint uMapType);2-像这样检索您的字符:  protected override bool ProcessCmdKey(ref Message msg, Keys keyData)        {     const int WM_KEYDOWN = 0x100;     if (msg.Msg == WM_KEYDOWN)     {                    // 2 is used to translate into an unshifted character value         int nonVirtualKey = MapVirtualKey((uint)keyData, 2);        char mappedChar = Convert.ToChar(nonVirtualKey);     }     return base.ProcessCmdKey(ref msg, keyData);  }感谢您的关心...并享受!
打开App,查看更多内容
随时随地看视频慕课网APP