0

System.Windows.Forms.Keysを割り当てた文字列に設定する必要があります。

ホットキーをコントロールに割り当てることができるサードパーティの.Netコントロールを使用しており、System.Windows.Forms.Keysを使用してホットキーを設定しています。例えば:

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 に答える