Чтение онлайн

на главную - закладки

Жанры

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

Климов Александр Петрович

Шрифт:

}

В этом примере пришлось добавить на форму кнопку, иначе текстовое поле будет автоматически получать фокус при загрузке формы и приложение не будет работать так, как это задумывалось изначально. В данном случае именно кнопка будет получать фокус ввода при загрузке формы. Но для этого надо присвоить свойству кнопки

TabIndex
нулевое значение.

Теперь если стилусом активировать текстовое поле, то автоматически будет отображена виртуальная клавиатура. Если на появившейся клавиатуре нажать клавишу

Tab
или щелкнуть на кнопке с надписью
Просто кнопка
, то
панель ввода автоматически свернется.

Элемент

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

Листинг 3.24

private void inputPanel1_EnabledChanged(object sender,EventArgs e) {

 // Отслеживаем состояние панели ввода

 // Свойство Bounds возвращает размеры и позицию SIP

 if (inputPanel1.Enabled == true)

this.txtJump.Top = 200 — inputPanel1.Bounds.Height;

 else

this.txtJump.Top = 200;

}

На рис. 3.15 показан внешний вид окна тестового приложения.

Рис. 3.15. Пример работы с элементом InputPanel

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

Элемент управления DataGrid

Элемент управления

DataGrid
позволяет отображать данные в виде таблицы, как это сделано в электронной таблице MS Excel. Как и многие другие элементы управления, он имеет обрезанные возможности по сравнению с полной версией .NET Framework. Например, отключена поддержка свойства
DataMember
.

Элемент управления

DataGrid
может быть связан с источниками данных при помощи свойства
DataSource
. Рассмотрим простейший пример работы с данным элементом. Прежде всего, потребуется создать XML-файл, содержащий некоторые данные. Для примера был использован файл
artists.xml
, в котором содержится информация о некоторых известных артистов шоу-бизнеса. Файл содержит записи о фамилии, дате рождения и адресе проживания. Созданный файл нужно добавить в проект, расположить на форме элемент
DataGrid
и присвоить ему имя
grdArtists
. В листинге 3.25 приведен код обработчика события
Form1_Load
.

Листинг 3.25

private void Form1_Load(object sender, EventArgs e) {

 Cursor.Current = Cursors.WaitCursor;

 try {

// Загружаем данные DataSet

DataSet ds = new DataSet;

ds.ReadXml(@"\Program Files\DataGrid_CS\artists.xml");

grdArtists.DataSource = ds.Tables[0];

 } catch (Exception) {

MessageBox.Show("Не
могу загрузить данные в DataGrid!", this.Text);

 }

 // Устанавливаем стили

 DataGridTableStyle ts = new DataGridTableStyle;

 ts.MappingName = "Order";

 DataGridColumnStyle artistDate = new DataGridTextBoxColumn;

 artistDate.MappingName = "BirthDate";

 artistDate.HeaderText = "Дата рождения";

 ts.GridColumnStyles.Add(artistDate);

 DataGridColumnStyle artistName = new DataGridTextBoxColumn;

 artistName.MappingName = "ArtistName";

 artistName.HeaderText = "Артист";

 artistName.Width = this.Width - artistDate.Width - 35;

 ts.GridColumnStyles.Add(artistName);

 grdArtists.TableStyles.Add(ts);

 Cursor.Current = Cursors.Default;

}

В данном примере из XML-файла извлекаются данные, относящиеся к фамилии артиста и дате его рождения. Остальная информация игнорируется. При загрузке приложения в элемент

DataGrid
записываются требуемые данные. На рис. 3.16 показан внешний вид приложения.

Рис. 3.16. Пример работы с элементом DataGrid

Также стоит прочитать статью «Using the DataGrid Control in Pocket PC Applications», которую можно найти в справочной системе MSDN. В этой статье иллюстрируются различные приемы программирования, которые помогут расширить возможности данного элемента.

Элемент Splitter

Элемент управления

Splitter
появился только в .NET Compact Framework 2.0. В предыдущей версии его не было. Этот элемент реализует разделитель, который используется для изменения размеров закрепленных элементов управления во время выполнения программы. Элемент
Splitter
обычно используется вместе с элементами управления, содержащими данные переменной длины.

Стоит рассмотреть работу данного элемента на конкретном примере. На форме следует расположить графическое поле

PictureBox
и присвоить его свойству
Dock
значение
Top
. Затем на форме надо расположить объект
Splitter
и его свойству
Dock
тоже присвоить значение
Top
. Также следует расположить на форме текстовое поле
TextBox
. Его свойству
Multiline
надо присвоить значение
True
, а свойству
Dock
— значение
Fill
. Внешний вид получившегося приложения показан на рис. 3.17.

Поделиться:
Популярные книги

Эпоха Опустошителя. Том I

Павлов Вел
1. Вечное Ристалище
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эпоха Опустошителя. Том I

Проблема майора Багирова

Майер Кристина
1. Спецназ
Любовные романы:
современные любовные романы
6.60
рейтинг книги
Проблема майора Багирова

Законы Рода. Том 13

Андрей Мельник
13. Граф Берестьев
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 13

Газлайтер. Том 15

Володин Григорий Григорьевич
15. История Телепата
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Газлайтер. Том 15

О, Путник!

Арбеков Александр Анатольевич
1. Квинтет. Миры
Фантастика:
социально-философская фантастика
5.00
рейтинг книги
О, Путник!

Прометей: каменный век

Рави Ивар
1. Прометей
Фантастика:
альтернативная история
6.82
рейтинг книги
Прометей: каменный век

Её (мой) ребенок

Рам Янка
Любовные романы:
современные любовные романы
6.91
рейтинг книги
Её (мой) ребенок

Идеальный мир для Лекаря 8

Сапфир Олег
8. Лекарь
Фантастика:
юмористическое фэнтези
аниме
7.00
рейтинг книги
Идеальный мир для Лекаря 8

Прометей: каменный век II

Рави Ивар
2. Прометей
Фантастика:
альтернативная история
7.40
рейтинг книги
Прометей: каменный век II

Цвет сверхдержавы - красный. Трилогия

Симонов Сергей
Цвет сверхдержавы - красный
Фантастика:
попаданцы
альтернативная история
8.06
рейтинг книги
Цвет сверхдержавы - красный. Трилогия

Болтливый мертвец

Фрай Макс
7. Лабиринты Ехо
Фантастика:
фэнтези
9.41
рейтинг книги
Болтливый мертвец

На границе империй. Том 9. Часть 2

INDIGO
15. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 2

Истребители. Трилогия

Поселягин Владимир Геннадьевич
Фантастика:
альтернативная история
7.30
рейтинг книги
Истребители. Трилогия

Лишняя дочь

Nata Zzika
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Лишняя дочь