0

我需要将System.Windows.Forms.Keys设置为我分配的字符串。

我正在使用第 3 方 .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 的方法,以便我可以完成此操作吗?

4

3 回答 3

3

我认为您在命名空间 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 
} 
于 2012-09-07T05:17:47.310 回答
2

您可以使用 KeysConverter 来执行此操作

string tmpString = "S";
KeysConverter kc = new KeysConverter();
this.systemHotKey1.SetHotKey(kc.ConvertFromString(tmpstring));
于 2012-09-07T05:17:32.770 回答
0

希望,这将完成工作:

KeysConverter kc = new KeysConverter();

string tmpString = "S";
Keys key = (Keys)kc.ConvertFromString(tmpString);
this.systemHotKey1.SetHotKey(key);
于 2012-09-07T05:22:08.820 回答