Редактировать: Почему-то я неправильно прочитал ваш вопрос, чтобы включить проверку действительного символа. Вы изменили это? Я добавил описание каждого.
- KeyCode - это значение перечисления Keys для ключа, который не работает
- KeyData соответствует KeyCode, но в сочетании с любыми клавишами SHIFT / CTRL / ALT
- KeyValue - это просто целочисленное представление KeyCode
Если вам просто нужен символ, я бы, вероятно, рекомендовал использовать событие KeyPress и использовать свойство KeyPressEventArgs . KeyChar . Затем вы можете использовать Char.IsLetterOrDigit () , чтобы узнать, является ли это действительный символ.
Кроме того, вы можете привести KeyEventArgs.KeyCode к символу, а затем использовать Char.IsLetterOrDigit для этого.