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

ЖАНРЫ

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

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

Шрифт:
Листинг 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.

Рис. 3.17. Применение элемента Splitter в приложении

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

Элемент MonthCalendar

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

MonthCalendar
появился только в последней версии .NET Compact Framework 2.0. Данный элемент позволяет легко выбрать необходимую дату.

Для создания тестового приложения на форме надо разместить элементы

MonthCalendar
и
Label
. Метка должна получить имя
lblSelectDate
, а для свойства
Text
нужно задать значение
Выбранная дата
. Затем следует дважды щелкнуть на элементе
monthCalendar1
, чтобы задать код обработчика события
DateChanged
. Этот код приведен в листинге 3.26.

Листинг 3.26

private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e) {

 lblSelectDate.Text =

"Выбранная дата: " + monthCalendar1.SelectionStart.ToShortDateString;

}

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

lblSelectDate
, как показано на рис. 3.18.

Рис. 3.18. Выбираем дату из месячного календаря

Элемент DateTimePicker

Поделиться с друзьями: