Программирование КПК и смартфонов на .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.