Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework
- Название:Программирование мобильных устройств на платформе .NET Compact Framework
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс
- Год:2006
- Город:Москва • Санкт-Петербург • Киев
- ISBN:5-8459-0989-9
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework краткое содержание
Книга известного профессионала в области компьютерных технологий посвящена разработке приложений для широкого спектра мобильных устройств с использованием популярной и постоянно развивающейся платформы .NET Compact Framework. Уникальность этой книги состоит в том, что в ней гармонично переплетены теоретические сведения обо всем цикле разработки программного обеспечения с практическими примерами применения на языках С# и Visual Basic. Подробно рассматриваются концепции, лежащие в основе самой платформы .NET Compact Framework, а также вопросы, связанные с созданием эффективного пользовательского интерфейса, управлением памятью, производительностью и надежностью. Немалое внимание уделяется практическим аспектам разработки приложений для мобильных устройств, среди которых выбор модели представления и доступа к данным, внедрение коммуникационной модели, реализация модели поведения с помощью конечных автоматов и использование XML.
Книга рассчитана на разработчиков разной квалификации, а также может быть полезна для студентов и преподавателей соответствующих специальностей.
Программирование мобильных устройств на платформе .NET Compact Framework - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
… строки кода для других элементов управления …
Представленный выше код подключает обработчик события BeforeExpand элемента управления treeView1. Функция обработчика события должна иметь специальную сигнатуру. В данном случае она имеет следующий вид:
private void TreeView1BeforeExpand(object sender, System.Windows.Forms.TreeViewCancelEventArgs e) {}
Неплохим способом обеспечения автоматической генерации обоих вышеприведенных фрагментов кода является использование проекта Windows Application для настольных компьютеров. В Visual Studio .NET проекты для настольных компьютеров поддерживают графический способ создания и подключения всех поддерживаемых обработчиков прерываний. Сгенерированный при этом код вы далее можете скопировать и вставить в соответствующие части своего проекта .NET Compact Framework.
Заслуживает рассмотрения и слегка видоизмененный вариант описанной выше стратегии. Поскольку конструктор форм автоматически вставляет и удаляет код внутри функции InitializeComponent(), существует вероятность того, что он добавит свой код поверх добавленного вами кода. Чтобы этого избежать, может оказаться целесообразным создать собственную функцию (например, MyInitializeComponent()), чтобы вставить в нее свой код, выполняющий все действия по инициализации, и вызвать эту функцию в коде конструктора формы сразу же после вызова InitializeComponent(). Благодаря этому вы сможете быть уверены в том, что ваш код не будет случайно удален конструктором форм.
На рис. 11.3 представлен пример простого приложения с элементами управления TreeView (treeview1) и Button (button1). Щелчок на кнопке во время выполнения приложения устанавливает или сбрасывает состояние элемента управления TreeView. После установки состояния элемента управления TreeView щелчком на кнопке он предоставляет три узла верхнего уровня, которые можно динамически заполнять данными. Этими узлами являются узлы Neighbourhoods, Price и HouseType.

Рис. 11.3. Выполнение приложения, динамически заполняющего данными элемент управления TreeView, на эмуляторе Pocket PC
Чтобы сократить размер кода и не усложнять пример, в листинг 11.2 включен лишь код, обеспечивающий динамическое заполнение данными узла Neighbourhoods. Щелчки на других узлах будут приводить при первом щелчке к отображению окна сообщений MessageBox, информирующего о том, что для динамического заполнения данного узла данными вы должны добавить собственный код.
В листинге 11.2 содержится код, который должен быть вставлен в класс Form для данного примера. Для создания приложения необходимо выполнить следующие действия:
1. Начните новый проект Smart Device в Visual Studio .NET и выберите в качестве целевой платформы Pocket PC.
2. Добавьте в форму Form в окне конструктора элементы управления TreeView и Button.
3. Дважды щелкните на кнопке Button в окне конструктора форм; в результате этого будет создан и подключен к кнопке приведенный ниже обработчик событий button1_Click.
4. Введите приведенный ниже код button1_Click, ответственный за заполнение данными элемента управления TreeView.
5. Введите оставшуюся часть приведенного ниже кода, включая константы, определения которых содержатся перед кодом обработчика прерываний button1_Click.
6. Вручную подключите обработчик событий для события BeforeExpand элемента управления TreeView, о чем говорилось в разделе выше.
7. Скомпилируйте пример и запустите его на выполнение.
//Фиктивный текст для размещения в заполнителях дочерних узлов
const string dummy_node = "_dummynode";
//Метка, которую мы будем использовать для обозначения узла
const string node_needToBePopulated = "_populateMe";
//Текст, который мы будем использовать для наших узлов высшего уровня
const string nodeText_Neighborhoods = "Neighborhoods";
const string nodeText_Prices = "Prices";
const string nodeText_HouseType = "HouseTypes";
//--------------------------------------------------------------------
//Обработчик события щелчка для кнопки
//
//Настраивает наш элемент управления TreeView для отображения процесса
//последовательного заполнения дерева
//--------------------------------------------------------------------
private void button1_Click(object sender, System.EventArgs e) {
TreeNode tnNewNode;
//Отключить обновление интерфейса до тех пор, пока дерево
//не будет заполнено
treeView1.BeginUpdate();
//Избавиться от устаревших данных
treeView1.Nodes.Clear();
//--------------------
//Узел "Neighborhoods"
//--------------------
//Добавить узел "Neighborhoods" верхнего уровня.
tnNewNode = treeView1.Nodes.Add("Neighborhoods");
//Установить для узла метку, указывающую на то, что узел
//будет заполняться динамически
tnNewNode.Tag = node_needToBePopulated;
//Этот фиктивный дочерний узел существует лишь для того, чтобы
//узел имел, по крайней мере, один дочерний узел и поэтому
//был расширяемым.
tnNewNode.Nodes.Add(dummy_node);
//------------
//Узел "Price"
//------------
tnNewNode = treeView1.Nodes.Add("Price");
//Установить для узла метку, указывающую на то, что узел
//будет заполняться динамически
tnNewNode.Tag = node_needToBePopulated;
//Этот фиктивный дочерний узел существует лишь для того, чтобы
//узел имел, по крайней мере, один дочерний узел и поэтому
//был расширяемым.
tnNewNode.Nodes.Add(dummy_node);
//----------------
//Узел "HouseType"
//----------------
tnNewNode = treeView1.Nodes.Add("HouseType");
//Установить для узла метку, указывающую на то, что узел
//будет заполняться динамически
tnNewNode.Tag = node_needToBePopulated;
//Этот фиктивный дочерний узел существует лишь для того, чтобы
//узел имел, по крайней мере, один дочерний узел и поэтому
//был расширяемым.
tnNewNode.Nodes.Add(dummy_node);
//Восстанавливаем обновление интерфейса
treeView1.EndUpdate();
}
//-------------------------------------------------------------------------
//Обработчик событий BeforeExpand для нашего элемента управления TreeView
//ПРИМЕЧАНИЕ: Этот обработчик событий необходимо будет
// вручную подключить к функции InitializeComponent()
// формы.
//
//Вызывается при запросе пользователем расширения узла, у которого имеется,
//по крайней мере, один дочерний узел. Этот вызов осуществляется до
//отображения дочерних узлов данного узла и дает нам возможность
//динамически заполнить данными элемент управления TreeView.
//-------------------------------------------------------------------------
private void TreeView1BeforeExpand (object sender, System.Windows.Forms.TreeViewCancelEventArgs e) {
Интервал:
Закладка: