VB.NET для Compact Framework

We use cookies. Read the Privacy and Cookie Policy

VB.NET для Compact Framework

Тестовое приложение

Чтобы ознакомиться с инструментами, которые предлагает для разработки приложений Pocket PC на VB.NET среда Microsoft Visual Studio.NET 2003, нужно создать простое приложение, попутно выясняя назначение и настройки разных инструментов, окон и панелей.

Упражнение 6.1

1. Запустить Visual Studio.NET. Чтобы создать новый проект, нужно нажать кнопку New Project на панели инструментов (рис. 6.1).

Рис. 6.1. Инструмент New Project.

Также можно выполнить команду меню File ? New ? Project. На экран будет выведено окно мастера создания нового проекта (рис. 6.2).

Рис. 6.2. Окно мастера создания нового проекта.

2. В группе Project Types можно выбрать тип создаваемого проекта. Для Pocket PC можно создать проекты только двух типов – Visual Basic и Visual C#. Группа Templates содержит набор шаблонов, на основе которых создается проект выбранного типа. И для проектов типа Visual Basic, и для проектов тип Visual C# приложения для Pocket PC создаются на основе шаблона Smart Device Application. В поле Name указывается имя создаваемого проекта. Путь к каталогу, в котором будет размещаться проект, указывается в поле Location.

3. В окне Project Types нужно указать тип проекта Visual Basic, а затем выбрать в окне Templates шаблон Smart Device Application. Проект должен получить имя Simple, а путь можно выбрать любой. После нажатия кнопки OK, на экран будет выведено окно мастера, позволяющего более точно указать настройки будущего проекта (рис. 6.3).

Рис. 6.3. Окно мастера создания проекта Smart Device Application.

4. В верхней части окна нужно выбрать значение Pocket PC, а в нижней части окна – Windows Application. После нажатия кнопки OK в среде разработки будет открыт готовый шаблон проекта для создания приложения Pocket PC. Этот проект представляет из себя одну форму, с размещенным на ней пустым шаблоном главного меню (рис. 6.4).

Рис. 6.4. Шаблон проекта Windows Application.

5. Щелкнуть на компоненте MainMenu1 на панели невидимых компонентов в нижней части окна проекта. В окне редактирования формы проявится линейка главного меню, как это показано на рис. 6.5. Нужно щелкнуть на первом пункте меню и ввести слово Меню.

Рис. 6.5. Редактирование пунктов главного меню.

6. После этого, щелкая на области с надписью Type Here выше этого пункта, нужно последовательно ввести названия команд Акварель, Масло, Гуашь (рис. 6.6).

Рис. 6.6. Редактирование команд главного меню.

7. Двойным щелчком на пункте меню Акварель следует открыть окно кода с шаблоном обработчика события и ввести код, приведенный в листинге 6.1. Листинг 6.1

Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

Handles MenuItem2.Click

MsgBox(«Акварель», MsgBoxStyle.Information, «Акварель»)

End Sub

8. Сохранить проект. Для запуска созданного приложения потребуется выполнить несколько дополнительных действий.

9. Указать устройство, на котором приложение будет выполняться. Это делается при помощи выбора из списка Deployment Device на панели инструментов.

10. Указать, какую сборку запускать – отладочную или окончательную. Это делается выбором значения из списка Solution Configurations на панели инструментов.

11. Наконец, из пункта меню Debug необходимо выбрать команду Start (если вы собираетесь производить отладку) или Start Without Debugging (если вы хотите просто запустить приложение).

12. В качестве целевого устройства нужно выбрать Pocket PC 2003 Emuliator, а в качестве конфигурации – Release. После этого нужно выполнить команду Start Without Debugging. Будет запущен эмулятор, среда выполнит соединение с ним, затем произведет поставку. NET Run-time и приложения на эмулятор и, наконец, запустит программу на выполнение. Сообщение обо всех этих этапах вы увидите в строке состояния среды.

13. В запущенной программе нужно щелкнуть мышью на пункте главного меню и выполнить команду Акварель. На экран будет выведено окно сообщений с заголовком и сообщением Акварель.

Инструменты, которые применяются при отладке приложения, мало отличаются от инструментов, применяемых в Embedded Visual C++. Те же окна для отслеживания значений переменных в левой нижней части экрана среды Autos, Locals, Watch, предназначенные для отслеживания как локальных, так и глобальных и объектных переменных в программе. В правой нижней части экрана среды находятся окна, перечисленные в следующем списке.

? Окно Call Stack отображает содержимое стека при вызове подпрограмм.

? Окно Breakpoints позволяет отслеживать состояние и управлять точками останова.

? Окно Command Window позволяет вводить команды на языке Visual Basic.

? Окно Output предназначено для консольного вывода программы.

? Окно Task List содержит оперативные заметки, позволяющие на ходу вносить напоминания о том, что надо исправить или доделать в текущем модуле.

Более полезное приложение

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

Это будет программа учета использования времени. Поскольку я сам в свое время, воодушевленный примером профессора Любищева (Даниил Гранин, роман «Эта странная жизнь»), начал учитывать свое время и обнаружил, что это полезно, то несколько раз пытался автоматизировать этот учет. Однако вести учет времени на настольном компьютере – задача не из легких, ведь носить компьютер с собой нереально. Приходилось записывать заметки в записную книжку, а затем переносить их в основной компьютер. Наладонник же словно специально для этого и создавали, поэтому как только я приобрел свой Pocket, тут же создал для него программу учета времени.

Смысл работы этой программы прост. Есть несколько категорий занятий, на которые разбивается вся ваша деятельность. Когда вы приступаете к выполнению той или иной задачи, то отмечаете время ее начала, а когда заканчиваете заниматься этой работой – отмечаете время окончания. В конце дня (недели, месяца, года) учитываете время, потраченное на каждую категорию, и удивляетесь. Если вы честно и с точностью до 5 (у Любищева – до 10) минут учитываете все полезные и бесполезные затраты времени, то один факт честного самоанализа уже поднимет вашу производительность вдвое. Вас, возможно, сильно удивит, сколько времени, которые вы считали потраченным на работу или учебу, на самом деле уходит на перекуры, кофе и болтовню.

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

Элементы управления. NET CF

С левой стороны рабочего стола Visual Studio располагается окно Toolbox, в котором отображаются элементы управления, применяемые в приложениях Pocket PC, создаваемых на VB.NET (рис. 6.7).

Рис. 6.7. Набор элементов управления. NET CF.

Элементы управления знакомы нам по палитре компонентов eVB и eVC. Отметим только, что появились три новых компонента – ContextMenu, InputPanel и StatusBar. Их назначения и основные свойства будут рассматриваться в следующих разделах главы. ContextMenu

Контекстное меню – это меню, всплывающее, когда вы удерживаете перо Pocket PC нажатым на каком-либо экранном объекте. Меню обеспечивает легкий доступ к операциям, часто выполняемым с выбранным объектом. Процесс создания контекстного меню мало отличается от процесса создания основного меню.

Чаще всего при работе с контекстным меню используют свойство MenuItems, которое содержит в себе коллекцию пунктов контекстного меню и позволяет изменять эту коллекцию не только во время дизайна, но и во время выполнения программы.

Основным событием контекстного меню является Popup, событие, срабатывающее при выводе контекстного меню на экран.

InputPanel

Этот компонент инкапсулирует в себе некоторые важные аспекты функционирования SIP (Software Input Panel), такие как вывод этого элемента на экран и его сокрытие.

Одним из основных свойств этого компонента является свойство Enabled. Оно позволяет выводить и скрывать панель, а также определять, в каком состоянии она находится. Обычно панель выводится в обработчике события GotFocus компонента, который нуждается в текстовом вводе, а скрывается в обработчике события LostFocus. Свойство VisibleDesktop задает область экрана, которая не занята в данный момент панелью. Оно позволяет динамически менять размер или положение видимых элементов приложения так, чтобы они не скрывались панелью.

StatusBar

Это обычная строка состояния формы. Свойство Text содержит выводимый в строку состояния текст, а свойство Font – параметры шрифта.

Обработчики событий элементов управления

Двойной щелчок на любом из элементов управления во время дизайна автоматически генерирует обработчик события, наиболее важного для данного элемента. Например, двойной щелчок на элементе StatusBar формирует в коде формы следующую процедуру, код которой приведен в листинге 6.2.

Листинг 6.2

Private Sub StatusBar1_ParentChanged(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles StatusBar1.ParentChanged

'Здесь мы вводим код обработчика

End Sub

А теперь попробуем переписать это код так, как показано в листинге 6.3. Листинг 6.3

Private Sub Nyam_nyam(ByVal sender As System.Object, ByVal e As System.EventArgs)

Handles StatusBar1.ParentChanged

'Здесь мы вводим код обработчика

End Sub

Эта функция все равно останется работоспособной. Это говорит о том, что имя процедуры не имеет значения. Процедура связана с событием не именем, а параметром Handles, расположенным в конце объявления, и набором передаваемых параметров. Если установить текстовый курсор после точки, так, как это показано на рис. 6.8, и нажать на клавиатуре сочетание клавиш Ctrl+Space, то на экран будет выведена подсказка, с какими еще событиями можно связать данную процедуру.

Рис. 6.8. Изменение привязки процедуры обработки события.

К сожалению, если мы выберем из списка событие, к примеру KeyDown, то получим сообщение об ошибке Method 'StatusBar1_ParentChanged' cannot handle Event 'KeyDown' because they do not have the same signature. Это связано с тем, что в обработчики разных событий передаются разные аргументы и сигнатура не может быть одинакова для всех обработчиков. В этом случае надо щелчком мыши в редакторе кода перевести текстовый курсор в слово KeyDown, и правой кнопкой мыши вызвать контекстное меню. Из контекстного меню необходимо выбрать команду Go To Definition, при помощи которой курсор будет перенесен в место определения данного события в окне Object Browser (рис. 6.9).

Рис. 6.9. Событие KeyDown в окне Object Browser.

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

Большинство элементов управления во время дизайна формы выглядят так же, как и во время выполнения программы. Разработчик помещает их на форму и позиционирует при помощи мыши. При помощи мыши разработчик может изменять их размер. Но есть несколько элементов управления, которые или невидимы во время выполнения программы, или поведение и отображение их во время выполнения отличается от поведения и отображения во время дизайна. К ним относятся: MainMenu, Timer, ImageList, ContextMenu, OpenFileDialog, SaveFileDialog и InputPanel. При добавлении к проекту эти компоненты не помещаются на форму, а располагаются на специальной области в нижней части дизайнера форм (рис. 6.10).

Рис. 6.10. Размещение невидимых элементов управления на специальной панели.

Данный текст является ознакомительным фрагментом.