Существует ли простой способ (оболочка/словарь) для преобразования из Keys enum в senkeys string?
Мне нужно преобразовать ключи в строки, используемые в методе Sendkeys. Пример:
Ключ.Enter to {ENTER}
Есть ли какой-нибудь простой способ сделать это? Я не мог его найти. if (key == Key.Enter)
SendKeys.SendWait({ENTER});
Мне нужно что-то, что преобразует все ключи.. Если ключ = = Ключ.a, я просто пошлю a. но, если это командный ключ (например: ключ.Enter) мне нужно сделать его верхним и добавить {}.
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()) }