Конвертировать Keys.Enter в char в Compact Framework - PullRequest
0 голосов
/ 21 мая 2010

Мне нужно преобразовать Keys.Enter в символ.

Это не работает в компактной среде: Преобразование последовательности System.Windows.Forms.Keys в Char (KeyInterop.VirtualKeyFromKey)

У кого-нибудь есть еще идеи?


Дополнительные разъяснения: Мне нравится использовать перечисления больше, чем магические числа / символы. Вместо того, чтобы делать свое собственное перечисление, которое говорит MyKeys.Enter (что равно '\ r \ n'), я хотел бы просто использовать то, что сделал MS.

Keys.Enter - только пример.


Я планирую сделать это, чтобы сравнить KeyPressEventArgs.KeyChar. Вот почему я пытаюсь сравнить с символом.

Ответы [ 2 ]

1 голос
/ 21 мая 2010

Ключи в перечислении ключей являются виртуальными ключами. Они не превращаются в символы, пока Windows не переведет их, используя текущую раскладку клавиатуры. Это детали, которые варьируются от одной машины к другой, в зависимости от предпочтений пользователя и языка. И вполне вероятно, что конкретное мобильное устройство работает на вашем программном обеспечении. Кроме того, многие виртуальные ключи не создают символов, очевидным примером может служить Keys.F1.

Превращение виртуальных ключей в персонажей - это то, чего вы должны действительно избегать, вы ошибетесь. Keys.Enter уже переведен Windows, он сгенерирует событие KeyPressed с e.KeyChar = '\ r'. Во всяком случае, на большинстве машин.

Если вы хотите обнаружить сочетания клавиш, используйте KeyDown. Клавиши для ввода символов, которые производят символы, требуют нажатия клавиш.

0 голосов
/ 21 мая 2010

Keys.Enter равно "\r\n", если введено в текстовое поле.

Вы должны быть в состоянии получить символы, сначала взяв значение Keys, поразрядно и присвоив ему значение Keys.KeyCode, и приведя к uint, чтобы получить код виртуальной клавиши. Затем передайте его MapVirtualKey , чтобы преобразовать его в символ.

...