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