На рис. 3.15 показан внешний вид окна тестового приложения.
Рис. 3.15. Пример работы с элементом InputPanel
В этом примере позиция текстового поля была подобрана опытным путем, но в реальных проектах разработчик может программно вычислить высоту формы, панели ввода, текстового поля и других элементов формы, чтобы более точно определить позицию сдвига.
Элемент управления DataGrid
Элемент управления DataGrid
позволяет отображать данные в виде таблицы, как это сделано в электронной таблице MS Excel. Как и многие другие элементы управления, он имеет обрезанные возможности по сравнению с полной версией .NET Framework. Например, отключена поддержка свойства DataMember
.
Элемент управления DataGrid
может быть связан с источниками данных при помощи свойства DataSource
. Рассмотрим простейший пример работы с данным элементом. Прежде всего, потребуется создать XML-файл, содержащий некоторые данные. Для примера был использован файл artists.xml
, в котором содержится информация о некоторых известных артистов шоу-бизнеса. Файл содержит записи о фамилии, дате рождения и адресе проживания. Созданный файл нужно добавить в проект, расположить на форме элемент DataGrid
и присвоить ему имя grdArtists
. В листинге 3.25 приведен код обработчика события Form1_Load
.
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