Comment atsortingbuer une valeur de chaîne à System.Windows.Forms.Keys?

Je dois définir System.Windows.Forms.Keys sur une chaîne que j’ai affectée.

J’utilise un contrôle .Net tiers qui me permet d’atsortingbuer le raccourci clavier au contrôle, qui utilise System.Windows.Forms.Keys pour définir le raccourci clavier. Par exemple:

this.systemHotKey1.SetHotKey(System.Windows.Forms.Keys.S); //Assign S as the HotKey

Cependant, System.Windows.Forms.Keys ne me laissera pas lui atsortingbuer une chaîne, je dois lui atsortingbuer une valeur réelle. Par exemple cela fonctionne bien:

 System.Windows.Forms.Keys.S (for the hotkey S on the keyboard). 

Mais je veux faire quelque chose comme ça:

 { ssortingng tmpSsortingng = "S"; this.systemHotKey1.SetHotKey(System.Windows.Forms.Keys.tmpSsortingng); //This does not work } 

Quelqu’un peut-il me montrer une méthode pour atsortingbuer une chaîne à System.Windows.Forms.Keys afin que je puisse accomplir cela?

Vous pouvez le faire en utilisant KeysConverter

 ssortingng tmpSsortingng = "S"; KeysConverter kc = new KeysConverter(); this.systemHotKey1.SetHotKey(kc.ConvertFromSsortingng(tmpssortingng)); 

Je pense que vous recherchez le convertisseur de clés dans l’espace de noms System.Windows.Input

 KeyConverter k = new KeyConverter(); Keys mykey = (Keys)k.ConvertFromSsortingng("Enter"); if (mykey == Keys.Enter) { Text = "Enter Key Found"; } 

Comme Keys est une énumération, vous pouvez également l’parsingr comme n’importe quelle énumération.

 ssortingng str = /* name of the key */; Keys key; if(Enum.TryParse(str, true, out key)) { // use key } else { // str is not a valid key } 

J’espère que cela fera le travail:

 KeysConverter kc = new KeysConverter(); ssortingng tmpSsortingng = "S"; Keys key = (Keys)kc.ConvertFromSsortingng(tmpSsortingng); this.systemHotKey1.SetHotKey(key);