ВУЗ:
Составители:
Рубрика:
138
рой 9, можно получить или значение Key.D9, или значение
Key.NumPad9. Проверка всех дозволенных значений клавиши будет
очень утомительной.
Одним из выходов является использование KeyConverter, чтобы
преобразовать значение Key в более полезную строку. Например, ис-
пользование функции KeyConverter.ConvertStringToString() в обоих
значениях Key.D9 и Key.NumPad9 вернет результат «9» в форме стро-
ки. Если просто использовать преобразование Key.ToString(), можно
получить менее полезное имя перечисления (либо «D9», либо
«NumPad9»):
KeyConverterconverter=newKeyConverter();
stringkey=converter.ConvertToString(e.Key);
Однако использовать KeyConverter тоже не очень неудобно, по-
скольку получается более объемный текст (например, «Backspace»)
для тех нажатий клавиш, которые не приводят к вводу текста.
Наиболее подходящим вариантом является обработка события
PreviewTextInput (при нем происходит большая часть проверки) и ис-
пользование события PreviewKeyDown для тех нажатий клавиш, ко-
торые не генерируют событие PreviewTextInput в текстовом поле (на-
пример, клавиша пробела). Ниже показано простое решение:
privatevoidpnl_PreviewTextInput(objectsender,TextComposi‐
tionEventArgse)
{
shortval;
if(!(Int16.TryParse(e.Text,outval))
{
//Запретнажатийнечисловыхклавиш,
е.Handled=true;
}
}
privatevoidpnlJPreviewKeyDown(objectsender,KeyEventArgse)
{
Страницы
- « первая
- ‹ предыдущая
- …
- 136
- 137
- 138
- 139
- 140
- …
- следующая ›
- последняя »