Выбрать главу

Глава 2

Первое приложение для .NET Compact Framework

Первые шаги

Практика — это самый лучший способ научиться программировать для мобильных устройств под .NET Compact Framework. Чтобы поверить в свои силы, нужно создать простейшее приложение. На его примере можно будет изучить различия между .NET Compact Framework и обычной .NET Framework.

Прежде всего нужно запустить среду разработки Microsoft Visual Studio 2005 и создать новый проект. Первые различия в процессе разработки можно увидеть уже на этой стадии. Если для создания обычных приложений надо было выбрать раздел Windows, то на этот раз необходимо выбрать раздел Smart Device. В этом разделе содержатся подразделы, которые отвечают за создание приложений для КПК, смартфонов и устройств под управлением операционной системы Windows СЕ. Итак, нужно указать язык программирования Visual С#, перейти в раздел Smart Device и выбрать подраздел Pocket PC 2003 (рис. 2.1).

Рис. 2.1. Выбор типа платформы

ПРИМЕЧАНИЕ

Список подразделов на рисунке может отличаться от списка подразделов на вашем компьютере. Например, пункты Windows Mobile 5.0 Pocket PC и Windows Mobile 5.0 Smartphone появились после установки соответствующих пакетов SDK.

В выбранном подразделе присутствуют несколько шаблонов для реализации различных задач. Как правило, используется шаблон Device Application. Нужно отметить, что существует еще один похожий шаблон с названием Device Application (1.0). Эти два шаблона различаются применяемой версией .NET Compact Framework. По умолчанию в Visual Studio 2005 используется .NET Compact Framework версии 2.0. Если выделить первый шаблон, то в строке состояния можно увидеть сообщение A project for creating a .NET Compact Framework 2.0 forms application for Pocket PC 2003 and later. В примерах будет использоваться, как правило, версия 2.0, так как она имеет ряд преимуществ.

После того как будет выбран шаблон для приложения, требуется изменить имя проекта. По умолчанию используется название DeviceApplication1, но наше первое приложение получит имя FirstPocketPCApp_CS. После нажатия кнопки OK откроется окно среды разработки с необычным видом формы. Если при программировании программ для настольных компьютеров отображается только форма, то в данном случае на экране будут показаны не только форма, но и внешний вид целевого устройства. При желании разработчик может даже изменить внешний вид карманного компьютера, создав специальные файлы. Если вы предпочитаете работать с классическим видом формы, то можно отключить отображение устройства, оставив на экране только форму. Для этого нужно щелкнуть правой кнопкой мыши на форме и в появившемся контекстном меню выбрать пункт Show Skin. Повторный выбор этого пункта вернет на экран стандартный вид формы.

Обычно в качестве первого примера создается стандартная программа, которая выводит приветствие на экран. На форме надо расположить кнопку Button и элемент Label для отображения надписи. Также потребуется написать код для обработчика события Click созданной кнопки. Этот код приведен в листинге 2.1.

Листинг 2.1

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