我需要将 System.Windows.Forms.Keys 设置为我指定的字符串。
我正在使用第三方.Net控件,它允许我将HotKey分配给控件,并使用 System.Windows.Forms.Keys 来设置HotKey。例如:
this.systemHotKey1.SetHotKey(System.Windows.Forms.Keys.S); //Assign S as the HotKey
但是,System.Windows.Forms.Keys不允许我为其分配字符串,我需要为其分配一个实际值。例如,这很好用:
System.Windows.Forms.Keys.S (for the hotkey S on the keyboard).
但我想做这样的事情:
{
string tmpString = "S";
this.systemHotKey1.SetHotKey(System.Windows.Forms.Keys.tmpString); //This does not work
}
有人可以告诉我一种方法,我可以给System.Windows.Forms.Keys分配一个字符串,这样我就能完成这个吗?
答案 0 :(得分:2)
您可以使用KeysConverter
来完成此操作string tmpString = "S";
KeysConverter kc = new KeysConverter();
this.systemHotKey1.SetHotKey(kc.ConvertFromString(tmpstring));
答案 1 :(得分:2)
我认为你是在命名空间System.Windows.Input
中的KeyConverter之后KeyConverter k = new KeyConverter();
Keys mykey = (Keys)k.ConvertFromString("Enter");
if (mykey == Keys.Enter)
{
Text = "Enter Key Found";
}
由于Keys是枚举,你也可以像任何枚举一样解析它。
string str = /* name of the key */;
Keys key;
if(Enum.TryParse(str, true, out key))
{
// use key
}
else
{
// str is not a valid key
}
答案 2 :(得分:0)
希望,这将完成工作:
KeysConverter kc = new KeysConverter();
string tmpString = "S";
Keys key = (Keys)kc.ConvertFromString(tmpString);
this.systemHotKey1.SetHotKey(key);