如何为System.Windows.Forms.Keys分配字符串值?

时间:2012-09-07 05:10:53

标签: c# winforms string

我需要将 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分配一个字符串,这样我就能完成这个吗?

3 个答案:

答案 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);