Программирование КПК и смартфонов на .NET Compact Framework | страница 14
> Char.ToUpper(e.KeyChar).ToString());
> // перемещаем каретку в новую позицию
> txtCurTime.SelectionStart = pos + 1;
> e.Handled = true;
> }
>}
У смартфонов внешний вид текстовых полей несколько отличается от стандартного вида. В частности, текстовое поле не имеет окантовки. Более подробно о текстовых полях в приложениях для смартфонов рассказывается в соответствующей главе.
Элемент Label
В рассмотренном примере также использовался элемент >Label
для отображения текстовой строки. Как правило, надпись используется для отображения некоторого текста, который пользователь не может изменить. Сама отображаемая строка задается при помощи свойства >Text
. Текст на экране можно выравнивать с помощью свойства >TextAlign
. Разработчик может использовать значения >TopLeft
, >TopCenter
и >TopRight
. При изменении текста в метке инициируется событие >TextChanged
. При создании элемента нужно следить за длиной отображаемой строки. Если текст слишком большой и не помещается в пределах элемента, то он попросту обрезается.
В отличие от полной версии .NET Framework, элемент Label в .NET Compact Framework не поддерживает такие свойства, как >AutoSize
, >BorderStyle
, >Image
, >ImageList
и многие другие. Также не поддерживается событие >Click
. Впрочем, на практике редко возникает нужда в обработке этого события.
Элемент RadioButton
Элемент управления >RadioButton
позволяет создавать переключатели, объединенные в группы. Вся группа переключателей должна располагаться в контейнере. Примером такого контейнера может служить сама форма, но чаще используется элемент >Panel
.
Когда пользователь выбирает один переключатель, то остальные переключатели в контейнере автоматически переводятся в выключенное состояние. Приложение может иметь несколько групп элементов >RadioButton
. В любом случае группы переключателей не зависят друг от друга.
При изменении состояния переключателя в классе >RadioButton
инициируются события >Click
и >CheckedChanged
. Событие >Click
возникает, когда пользователь щелкает стилусом на самом переключателе. Событие >CheckedChanged
возникает, когда состояние элемента >RadioButton
меняется программно или в результате действий пользователя. Событие >Click
не инициируется, когда свойство >CheckedChanged
меняется программно.
Для демонстрации примера работы с элементом >RadioButton
можно создать аналог популярной телеигры «Кто хочет стать миллионером?». На экране будет отображаться вопрос, а пользователь должен выбрать из представленных вариантов единственный правильный ответ. Код, реализующий основную функциональность приложения, приведен в листинге 3.3.