- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Программирование КПК и смартфонов на .NET Compact Framework - Александр Климов
Шрифт:
Интервал:
Закладка:
Обычно в качестве первого примера создается стандартная программа, которая выводит приветствие на экран. На форме надо расположить кнопку Button и элемент Label для отображения надписи. Также потребуется написать код для обработчика события Click созданной кнопки. Этот код приведен в листинге 2.1.
Листинг 2.1private void butSayHello_Click(object sender, EventArgs e) {
lblHello.Text = "Здравствуй, мир!";
}
Теперь можно запустить проект при помощи команды Start Debugging или клавиши быстрого вызова F5. При этом на экране появится диалоговое окно Deploy (рис. 2.2).
Рис. 2.2. Диалоговое окно Deploy
В основном списке окна перечислены устройства, на которых может выполняться написанная программа. Проверять работу приложения можно как на реальном устройстве, так и при помощи эмулятора. Как правило, при отладке программы используют эмуляторы и только в финальной части тестируют программу на реальном устройстве. Легко заметить, что создание программ для КПК совсем не требует наличия карманного компьютера. Автор не раз был свидетелем того, как разработчик на своем сайте признавался, что написал приложение, не имея КПК. А пользователи благодарили автора за хорошую программу и подтверждали ее работоспособность на своих реальных моделях.
Практически все примеры из этой книги сначала запускались на эмуляторе. Поэтому можно выбрать любой эмулятор из предложенного списка. Чаще всего применяется эмулятор Pocket PC 2003 SE. После выбора соответствующего значения в списке нужно нажать кнопку Deploy. Сначала на экране монитора будет отображен сам эмулятор (рис. 2.3), а спустя некоторое время в эмуляторе будет запущена созданная программа.
Рис. 2.3. Первый запуск эмулятора
Мышью можно щелкнуть на кнопке с надписью Поздороваться. В результате на форме появится строка Здравствуй, мир! (рис. 2.4).
Рис. 2.4. Отображение сообщения
Теперь, когда вы поверили в свои силы, вам захочется начать переписывать свои старые программы, написанные на С# или Visual Basic .NET, для карманных компьютеров. Но торопиться все же не стоит. Между полной версией .NET Framework и .NET Compact Framework существует довольно много различий, которые придется последовательно устранять.
Кнопки минимизации и закрытия формы
При создании пустой формы можно заметить, что отображается всего одна кнопка минимизации вместо привычных трех кнопок свертывания, восстановления и закрытия формы. Причем кнопка минимизации в виде крестика очень похожа на кнопку закрытия формы в обычных настольных приложениях. У начинающих программистов это поначалу вызывает недоумение. Стандартная модель поведения программ на карманном компьютере устроена таким образом, что когда пользователь нажимает кнопку с крестиком, то он сворачивает программу, а не закрывает ее. Об этом говорит значение True свойства формы MinimizeBox. Если для этого свойства задать значение False, то вместо кнопки с крестиком будет отображаться кнопка OK (рис. 2.5). При нажатии на эту кнопку программа завершит свою работу.
Рис. 2.5. Приложение с кнопкой OK
Размеры и позиция формы
По умолчанию любая форма занимает весь экран. Ее верхний левый угол находится в точке с координатами (0, 26). Если попробовать вручную изменить значения свойства Location, то среда разработки проигнорирует эти попытки и вернет значения. Что же касается размеров формы, то при желании все же можно изменить высоту и ширину формы. Но на практике подобная необходимость встречается редко, поэтому мы не будем заострять на этом внимание.
Меню
По умолчанию в создаваемой форме уже содержится элемент управления MainMenu. Однако в первом примере он не применялся. Чтобы использовать этот элемент управления, нужно создать простое меню с одним пунктом. В области Component tray нужно выделить мышью элемент mainMenu1. На форме появится надпись Type here. В этой области нужно ввести слово «Поздороваться». Для обработчика события menuItem1_Click будет применяться тот же код, который вызывался при нажатии на кнопку. Код обработчика события приведен в листинге 2.2.
Листинг 2.2private void menuItem1_Click(object sender, EventArgs e) {
lblHello.Text = "Здравствуй, мир!";
}
После запуска программы можно заметить, что созданный пункт меню располагается в нижней части экрана, в отличие от настольных приложений, в которых меню располагается в верхней части окна (рис. 2.6).
Рис. 2.6. Меню в нижней части окна
Следует отметить, что меню в приложениях для Pocket PC располагается не на форме, а на панели задач. Также на панели задач находится значок виртуальной клавиатуры SIP для ввода информации. Когда пользователь запускает приложение, то его меню появляется на панели задач. Но если удалить меню из формы, то при запуске программы панель задач вообще не будет отображаться (рис. 2.7).
Рис. 2.7. Экран без панели задач
Панель ввода SIP
В этой главе уже упоминалась виртуальная клавиатура. Большинство карманных компьютеров не имеют встроенных клавиатур для ввода информации. Вместо клавиатуры в этом случае используется специальная панель ввода SIP (Software Input Panel), которая позволяет вводить текст (рис. 2.8).
Рис. 2.8. Активированная панель ввода SIP
Для работы с виртуальной клавиатурой в .NET Compact Framework используется класс InputPanel. Так как панель ввода находится на панели задач, то необходимо, чтобы панель задач была видимой. А ранее уже говорилось что, если форма не имеет меню, то панель задач будет невидима. В результате при попытке создания экземпляра класса InputPanel на форме, не имеющей меню, будет отображено сообщение об ошибке.
Стилус вместо мыши
Подавляющее число пользователей настольной версии Windows пользуются мышью. В карманных компьютерах роль мыши выполняет стержень из пластика, называемый стилусом. Конечно, у стилуса нет правой кнопки для вызова контекстного меню. У него вообще кнопок нет.
Вместо кнопок в карманных компьютерах применяется технология Tap-and-Hold. Для выделения элемента управления пользователь должен точно попасть в него кончиком стилуса. По аналогии с мышью, можно легко щелкнуть по экрану (Click), а можно нажать на экран и удерживать стилус на месте (Press).
Глава 3
Элементы управления
Сходство и различия
Несмотря на свою схожесть, .NET Compact Framework уступает в функциональности базовой библиотеке .NET Framework. Это относится и к элементам управления. К счастью, кнопки, списки и текстовые поля все же присутствуют в мобильной версии. Кроме того, в .NET Compact Framework 2.0 была добавлена поддержка еще нескольких элементов управления, которые отсутствовали в NET Compact Framework 1.0.
Рис. 3.1. Свойства, поддерживаемые в .NET Compact Framework
Нужно помнить, что даже поддерживаемые элементы управления имеют порой ограниченные возможности. Чтобы узнать, какие свойства, методы или события не поддерживаются элементом управления, нужно запустить справочную систему, найти нужный класс и просмотреть все члены класса. Если нужное свойство поддерживается в .NET Compact Framework, то у его описания будет присутствовать значок мобильного устройства (рис. 3.1). В качестве примера можно открыть страницу с описанием класса Registry. Легко заметить, что поля CurrentUser, LocalMachine и Users поддерживаются в .NET Compact Framework, а поля DynData и PerfomanceData — нет.
Но даже если необходимый объект поддерживается в .NET Compact Framework, то все равно следует внимательно ознакомиться с его описанием. Например, поле LocalMachine поддерживается только в NET Compact Framework 2.0, поэтому при разработке нужно решить, стоит ли использовать это поле (рис. 3.2).
Рис. 3.2. Просмотр поддержки версий .NET Compact Framework
В следующем списке перечислены элементы управления, которые не входят в состав классов библиотеки .NET Compact Framework 1.0:
□ CheckedListBox;
□ ColorDialog;
□ ErrorProvider;
□ FontDialog;
□ GroupBox;
□ HelpProvider;
□ LinkLabel (поддерживается в .NET Compact Framework 2.0);
□ NotificationBubble;
□ NotifyIcon;
□ элементы управления, связанные с печатью;
□ RichTextBox;
□ Splitter (поддерживается в .NET Compact Framework 2.0).
В Compact .NET Framework 2.0 были добавлены новые элементы управления, которые перечислены в следующем списке.

