Программирование КПК и смартфонов на .NET Compact Framework - [7]

Шрифт
Интервал

. Код, приведенный в листинге 3.1, является обработчиком этого события. Он выводит текущее время в текстовое поле после нажатия на кнопку с надписью >Узнать время.

Листинг 3.1

>private void butGetTime_Click(object sender, EventArgs e) {

> txtCurTime.Text = DateTime.Now.ToLongTimeString();

>}

Рисунок 3.3 показывает приложение в момент нажатия на кнопку.

Рис. 3.3. Результат нажатия на кнопку

Текст на кнопке может быть только однострочным. Если он не помещается на кнопке, то будет обрезан. Поэтому нужно быть очень осторожным при выборе текста для кнопки. В следующей главе, посвященной улучшениям элементов управления, приведен пример создания кнопки с многострочным текстом, которая создается при помощи неуправляемого кода с использованием функций Windows API.

Функциональность элемента управления >Button очень сильно урезана по сравнению с полной версией .NET Framework. В частности, у данного элемента нет свойств >Image и >ImageList, которые применяются для отображения на кнопке графики.

Элемент TextBox

В предыдущем примере дата отображалась в текстовом поле. Это поле создается при помощи класса >TextBox, который позволяет вводить текст. Данный элемент поддерживает такие стандартные свойства, как >BackColor и >ForeColor. Событие >Click элементом >TextBox не поддерживается, но разработчик может воспользоваться событиями >KeyPress, >KeyUp и >KeyDown. Следует отметить особенность этого элемента. Несмотря на то что класс >TextBox поддерживает свойство >PasswordChar, при вводе пароля на экране всегда будет использоваться символ звездочки. Задать другой символ не получится.

Также текстовое поле не поддерживает свойство >CharacterCasing, позволяющее в автоматическом режиме преобразовывать символы текста в нужный регистр. Впрочем, данный недостаток легко исправить, что иллюстрирует фрагмент кода, приведенный в листинге 3.2.

Листинг 3.2

>private void txtCurTime_KeyPress(object sender, KeyPressEventArgs e) {

> if (Char.IsLetter(e.KeyChar)) {

>  // сохраняем текущую позицию каретки

>  int pos = txtCurTime.SelectionStart;

>  // переводим в верхний регистр

>  txtCurTime.Text =

>   txtCurTime.Text.Insert(txtCurTime.SelectionStart,

>    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.

Листинг 3.3

>private void radClub1_CheckedChanged(object sender, EventArgs e) {

> if (this.radClub1.Checked)

>  MessageBox.Show("Увы, вы проиграли", "Ошибка!");

>}


>private void radClub2_CheckedChanged(object sender, EventArgs e) {

> if (this.radClub2.Checked)

>  MessageBox.Show("Поздравляю! Вы выиграли миллион!", "Миллион!");

>}


>private void radClub3_CheckedChanged(object sender. EventArgs e) {


Еще от автора Александр Петрович Климов
Реестр Windows 7

Задача этой книги – дать базовые понятия о системном реестре Windows 7, познакомить с используемым для редактирования реестра инструментарием, а также предложить ряд практических рекомендаций для настройки операционной системы.В книге рассматриваются практические приемы настройки новейшей операционной системы Microsoft Windows 7 методом редактирования системного реестра. Описывается архитектура реестра, инструментальные средства для работы с ним, а также вспомогательное программное обеспечение. Рассмотрены все новые параметры реестра, появившиеся в Windows 7, а также популярные настройки реестра, наиболее востребованные большинством пользователей ПК.


Народные советы. Железо ПК

Очень сложно было разделить все проблемы на разделы (т.к. одна проблема может относиться сразу к нескольким разделам), поэтому советуем просмотреть и другие разделы, если Вы не найдете решение/описание нужной Вам в соответствующем разделе.  Надеемся, что этот справочник поможет Вам в трудную минуту. Здесь содержатся описания наиболее частых проблем, возникающих при работе с компьютером, и методы их решения (и даже предотвращения)!  Если ни один из этих советов Вам не поможет - обращайтесь к мастеру. Если ваш компьютер еще на гарантии, то сами лучше в системник не лезьте (если Вы, конечно, не "мастер-самоучка"), а просто проверьте все внешние факторы (провода, подключения, разъемы и т.д.)


Народные советы и трюки

Данный справочник является плодом сотрудничества Игоря Чеботарева и Александра Климова. При его составлении использовались самые полезные и популярные на наш взгляд советы, присланные для рубрики Народная мудрость сайта http://www.whatis.ru/2002-2004 гг.


Реестр Windows

Авторы Александр Климов и Игорь Чеботарев использовали самые разные источники при составлении справочника: интернет, книги, журнальные и газетные публикации Отдельное спасибо Евгению Соболеву (SOFTODROM) - за дельные замечания  и Korsar - за отдельные статьи 2002-2007 гг.


Программы и файлы Windows

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Рекомендуем почитать
Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.


MFC и OpenGL

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Симуляция частичной специализации

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Обработка событий в С++

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.