我正在尝试将虚拟键码映射到char.
我的代码使用ProcessCmdKey来监听WM_KEYDOWN,这使我可以访问按下的键.例如,当我按单引号时,我得到一个222的密钥,我希望它映射到keychar 39代表...你猜对了......单引号.
我的开发上下文是: - .net Framework 2.0 - UserControl放置在很多地方
你知道问题的答案吗?
所以我在 Visual Studio 的 C# Windows 窗体应用程序中,我制作了一个音板程序,该程序根据用户设置的相应“热键”播放声音。我无法弄清楚如何让程序识别用户设置的热键。这可能听起来很模糊,所以让我告诉你。
好的,这是从一开始就设置为运行的代码“双击设计菜单中的表单时编辑的内容”
if (e.KeyCode == Keys.D)
{
// The Program plays sound
}
Run Code Online (Sandbox Code Playgroud)
所以我知道当我按键盘上的“d”时,声音会播放。
好吧,我希望当我在其他地方的文本框中输入一个字符时播放声音。因此,就像我打开我的程序一样,将“t”放入“设置热键”文本框中,然后按 t 并播放声音。
所以我希望程序做这样的事情
if (e.KeyCode == Keys.(textBox1.Text)) // textBox1 is my set hotkey box
{
// The Program plays sound
}
Run Code Online (Sandbox Code Playgroud)
有什么方法可以让 e.KeyCode 识别 textBox.Text 吗?我是否必须将 textBox1.Text 转换为键代码值?如果是这样,如何?
我是编码新手,所以试着向我解释它,好像我是一个假人:D
我真的很欣赏你的时间!
如果我使用以下代码:
for (int i = 0; i < text.Length; i++)
{
char c = text[i];
Keys k = (Keys)(byte)c;
MessageBox.Show(c.ToString() + "|" + k.ToString());
}
Run Code Online (Sandbox Code Playgroud)
我只能获得大写字母的正确转换.问题是,我需要能够复制小写字符,并且我得到转换错误.例如,'e'转换为'NumPad5',其中'E'正确转换为'E'.我该怎么攻击这个?我将采用输入字符串并为我正在尝试开发的宏播放器创建虚拟按键.