Существует ли простой способ (оболочка/словарь) для преобразования из Keys enum в senkeys string?


Мне нужно преобразовать ключи в строки, используемые в методе Sendkeys. Пример:

Ключ.Enter to {ENTER}

Есть ли какой-нибудь простой способ сделать это? Я не мог его найти.
 if (key == Key.Enter)
     SendKeys.SendWait({ENTER});

Мне нужно что-то, что преобразует все ключи.. Если ключ = = Ключ.a, я просто пошлю a. но, если это командный ключ (например: ключ.Enter) мне нужно сделать его верхним и добавить {}.

2 2

2 ответа:

Можно было бы обернуть стандартный перечислитель Key в класс-оболочку, с помощью этого подхода можно создать метод ToString(), который преобразует значение перечислителя в строку.

Взгляните на этот пример:

Enum Класс Оболочки

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())
        }
Key.Enter.ToString().ToUpper()