C# 是否有任何简单的方法(包装器/字典)将Keys enum转换为SenKeys字符串?
我需要将Sendkeys方法中使用的键转换为字符串。 样本: Key.Enter到{Enter} 有什么简单的方法吗?我找不到它C# 是否有任何简单的方法(包装器/字典)将Keys enum转换为SenKeys字符串?,c#,dictionary,sendkeys,C#,Dictionary,Sendkeys,我需要将Sendkeys方法中使用的键转换为字符串。 样本: Key.Enter到{Enter} 有什么简单的方法吗?我找不到它 if (key == Key.Enter) SendKeys.SendWait({ENTER}); 我需要一个能转换所有钥匙的东西。。 如果key==key.a,我只发送a。但是,如果它是一个命令键(例如:key.Enter),我需要将其置高并添加{}。一种可能的方法是将键标准枚举数包装到包装类中,使用这种方法,您可以创建一个ToString()方法,将
if (key == Key.Enter)
SendKeys.SendWait({ENTER});
我需要一个能转换所有钥匙的东西。。
如果key==key.a,我只发送a。但是,如果它是一个命令键(例如:key.Enter),我需要将其置高并添加{}。一种可能的方法是将
键
标准枚举数包装到包装类中,使用这种方法,您可以创建一个ToString()
方法,将枚举数值转换为字符串
Key.Enter.ToString().ToUpper()
看看这个例子:
枚举包装类
class KeyEnumWrapper {
public System.Windows.Forms.Keys key { get; set; }
public KeyEnumWrapper(System.Windows.Forms.Keys key) {
this.key = key;
}
public string ToString() {
return "{" + key.ToString().ToUpper() + "}";
}
}
客户端(使用)
谢谢,但我需要找出它是否是所有键的命令键。如果是命令键,我可以照你说的做,但不是所有的键都能用。@Pedro77:也许我不明白你的意思。在这样的场景下,你可能想考虑自己制作一个映射库(如果你真的找不到),也可以考虑进入一个WiWOSAPI调用,只需通过键入代码而不是使用<代码> SeNekKest,并保存自己所有的麻烦。{{}不是所有键()的,但是谢谢你的建议。
private void Form1_KeyUp(object sender, KeyEventArgs e) {
KeyEnumWrapper wp = new KeyEnumWrapper(e.KeyCode);
SendKeys.SendWait(wp.ToString())
}