c#中字符串的值为e.KeyCode
本文关键字:KeyCode 字符串 | 更新日期: 2023-09-27 18:15:59
在Visual Studio中的c# Windows窗体应用程序中,我创建了一个音板程序,它根据用户设置的对应的"热键"播放声音。我有麻烦弄清楚如何让程序识别用户设置热键。这可能听起来很模糊,所以让我给你演示一下。
好的,这是设置为从"当你在设计菜单中双击表单时编辑的内容"开始运行的代码
if (e.KeyCode == Keys.D)
{
// The Program plays sound
}
所以我知道当我按键盘上的"d"时,声音就会播放。
嗯,我希望当我输入我在其他地方的文本框中写入的字符时播放声音。就像我打开程序一样,在"设置热键"文本框中输入"t",然后按下t,声音就播放了。
我想让程序做这样的事情
if (e.KeyCode == Keys.(textBox1.Text)) // textBox1 is my set hotkey box
{
// The Program plays sound
}
是否有办法我可以得到textBox。e.KeyCode可以识别的文本?我必须转换textBox1。文本到键代码值?如果有,是怎么做到的?
我刚开始编程,所以试着给我解释一下,好像我是一个傻瓜:D
我真的很感谢你的时间!使用Enum。TryParse方法
Keys key;
if (Enum.TryParse<Keys>(textBox1.Text, out key))
{
//Do something with key
if (e.KeyCode == key)
{
}
}
如果您只关心1个字符,请尝试以下操作:
Keys key;
if (textBox1.TextLength > 0 && Enum.TryParse<Keys>(textBox1.Text[0].ToString(), out key))
{
//Do something with key
if (e.KeyCode == key)
{
}
}
尝试将文本值解析为enum。
if (e.KeyCode == (Keys)Enum.Parse(typeof(Keys), textBox1.Text))
{
// The Program plays sound
}
(伪代码,未编译)
您可以尝试在文本框中创建一个KeyDown事件,并使用switch语句来区分不同的键
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
Switch(e.Key)
case e.Key == Key.D; PlaysondforD; break;
case e.Key == Key.E; PlaysondforE; break;
.........
}