2

キーから Sendkeys メソッドで使用される文字列に変換する必要があります。サンプル:

Key.Enter to {ENTER}

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

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

すべてのキーを変換する必要があります。キー == Key.a の場合、a を送信します。でも、コマンドキー(例:Key.Enter)なら上にして{}をつける必要があります。

4

2 に答える 2

1

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

この例を見てください:

列挙型ラッパー クラス

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() + "}";
        }
    }

クライアント(用途)

  private void Form1_KeyUp(object sender, KeyEventArgs e) {
            KeyEnumWrapper wp = new KeyEnumWrapper(e.KeyCode);
            SendKeys.SendWait(wp.ToString())
        }
于 2012-04-05T21:56:10.400 に答える
0
Key.Enter.ToString().ToUpper()
于 2012-04-05T20:58:52.170 に答える