ВУЗ:
Составители:
Рубрика:
137
(Событие TextInput не возникает, поскольку элемент TextBox блоки-
рует его.) В этот момент текст еще не отображается в элементе управления.
Событие TextInput предлагает код объекта
TextCompositionEventArgs. Этот объект включает свойство Text, ко-
торое дает обработанный текст, подготовленный к получению эле-
ментом управления. Ниже представлен код, добавляющий текст в
список, показанный на рис. 45:
privatevoidTextInput(objectsender,TextCompositionEventArgs
e)
{
stringmessage=//"At:"+e.Timestamp.ToString()+
"Event:"+e.RoutedEvent+""+
"Text:"+e.Text;
lstMessages.Items.Add(message);
}
В идеале можно использовать PreviewTextInput для выполнения
проверки в элементе управления, таком как TextBox. Например, если
создается текстовое поле для ввода только чисел, можно проверить,
не была ли введена при текущем нажатии клавиши буква; если буква
не была введена, устанавливается флаг Handled. К сожалению, собы-
тие PreviewTextInput не генерируется для некоторыхклавиш, которые,
возможно, придется обрабатывать. Например, если нажать клавишу
пробела в текстовом поле, то событие PreviewTextInput будет пропу-
щено. Это означает, что нужно будет обработать также событие
PreviewKeyDown.
К сожалению, трудно реализовать надежную логику проверки
данных в обработчике события PreviewKeyDown, поскольку все, чем
можно оперировать – это значение Key, которое является слишком
малой порцией информации. Например, перечисление Key проводит
различие между цифровой клавиатурой и обычной клавиатурой. Это
означает, что в зависимости от того, как будет нажата клавиша с циф-
Страницы
- « первая
- ‹ предыдущая
- …
- 135
- 136
- 137
- 138
- 139
- …
- следующая ›
- последняя »