2012-04-05 11 views
2

キーからSendkeysメソッドで使用される文字列に変換する必要があります。 サンプル:{ENTER}Keys列挙型からSenKeys文字列への簡単な変換(ラッパー/辞書)はありますか?

Key.Enterはそれを行うための簡単な方法はありますか?私はそれを見つけることができませんでした。

if (key == Key.Enter) 
    SendKeys.SendWait({ENTER}); 

私はすべてのキーを変換tomethingを必要とする。.. キー== Key.aた場合、私はちょうど送信されます。しかし、それがコマンドキー(例:Key.Enter)であれば、それを上にして{}を追加する必要があります。

+0

をあなた自身のマッピングライブラリ(あなたが実際にそれを見つけることができない場合)、また、Windowsapiの呼び出しをちょうど'SendKeys'を使わずにキーコードを渡して、すべての問題を解決してください。 –

答えて

1

可能な方法は、このアプローチを使用すると、文字列に列挙値を変換ToString()メソッドを作成することができ、ラッパークラスへKey標準列挙子をラップすることができます。

は、この例を見てみましょう:あなたがすることを検討したい場合があります。このようなシナリオでは

列挙ラッパークラス

class KeyEnumWrapper { 
     public System.Windows.Forms.Keys key { get; set; } 

     public KeyEnumWrapper(System.Windows.Forms.Keys key) { 
      this.key = key; 
     } 

     public string ToString() { 
      return "{" + key.ToString().ToUpper() + "}"; 
     } 
    } 

クライアント(使用)

​​
+0

"{}"はすべてのキーではありません(http://msdn.microsoft.com/ja-jp/library/system.windows.forms.sendkeys.aspx)。 – Pedro77

+0

sinseもうあなたの病気はあなたのことを信じていません。 – Pedro77

0
Key.Enter.ToString().ToUpper() 
+0

ありがとうございますが、私はそれがコマンドキーかどうかを、すべてのキーで調べる必要があります。それがコマンドキーなら、私はあなたが言ったことをすることができますが、すべてのキーではうまくいかないでしょう。 – Pedro77

+0

@ Pedro77:私はあなたのことを理解できないかもしれません。どのコマンドキーを処理するのですか? – Tigran

関連する問題