Я предлагаю использовать комбинацию событий KeyDown и KeyPress. Для всех простых клавиш (исключая Ctrl, Shift и т. Д. c) событие KeyPress даст вам самого персонажа и тогда не нужно будет его преобразовывать. Пример:
private void txInterval_KeyPress(object sender, KeyPressEventArgs e)
{
char c = e.KeyChar;
}
Здесь e.KeyChar даст вам 2, когда вы нажмете цифру 2, а не D2, например. Вы можете использовать KeyDown для записи клавиш для Ctrl, Alt и Shift и т. Д. c. Приложение будет вызывать как KeyDown, так и KeyPress, когда вы нажимаете цифру c или алфавит, например. Это просто делает ваш код очень простым, вместо проверки IF на D0, D1 ... D9. И поскольку KeyChar выдаст вам самого персонажа, вы можете легко проверить, является ли он цифрой c или алфавитом, если вам нужно преобразовать это далее.
Надеюсь, это поможет.