Я хочу создать числовое текстовое поле в серебряном свете.
Я добавил событие нажатия клавиши TextBox для обработки нажатия клавиши .
Внутри события Я проверяю ключ, введенный в текстовое поле.
событие выглядит следующим образом
private void TextBox_KeyDown(object sender, KeyEventArgs e)
{
if (!this.Validate(sender,e))
e.Handled = true;
}
функция Подтвердить следующим образом
private bool Validate(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter) //accept enter and tab
{
return true;
}
if (e.Key == Key.Tab)
{
return true;
}
if (e.Key < Key.D0 || e.Key > Key.D9) //accept number on alphnumeric key
if (e.Key < Key.NumPad0 || e.Key > Key.NumPad9) //accept number fomr NumPad
if (e.Key != Key.Back) //accept backspace
return false;
return true;
}
Я не могу обнаружить сдвиг и Key.D0 для Key.D1, т.е.
SHIFT + 1 , который возвращает "! "
SHIFT + 3 возвращает " # ", как и любые другие специальные клавиши.
Я не хочу, чтобы пользователь вводил специальный символ в текстовое поле.
Как мне обработать это событие ключей?