Подтвердить что ты не робот

Что такое KeyCode для "," (запятая) и "." (Точка) в .NET?

В моем KeyDown EventHandler мне нужно знать, что такое KeyCode для "," и ".".

Я не могу найти их, поэтому я спрашиваю. Спасибо!

4b9b3361

Ответ 1

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

Например, Keys.Decimal - это ключ на клавиатуре, который соответствует . на макете США, и , на немецком макете. Keys.Oemcomma и OemPeriod, скорее всего, , и . поддерживают буквы. Но на других макетах, которые могут быть разными.

Ответ 2

Oemcomma и OemPeriod выглядят как хорошие кандидаты.

Посмотрите Keys перечисление в MSDN.

Ответ 3

Обратите внимание на десятичное значение, указанное в key code.

http://www.asciitable.com/

Ответ 4

Я сделал это:

  • Создал проект WinForm с одним текстовым полем.
  • Добавлен обработчик события keydown.
  • Поместите в него точку останова
  • Получил следующее:

enter image description here

Ответ 5

Используйте Keys.Oemcomma и Keys.OemPeriod

Ответ 6

Вы пробовали это "." c

Поплавковый фильтр:

Select Case e.KeyChar
    Case "0"c To "9"c
    Case "."c
        If .Text.Contains(".") Then
            e.Handled = True
        End If
    Case ChrW(Keys.Delete), ChrW(Keys.Back)
    Case Else
        e.Handled = True
End Select