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появился только в .NET Compact Framework 2.0. В предыдущей версии его не было. Этот элемент реализует разделитель, который используется для изменения размеров закрепленных элементов управления во время выполнения программы. Элемент Splitterобычно используется вместе с элементами управления, содержащими данные переменной длины.
Стоит рассмотреть работу данного элемента на конкретном примере. На форме следует расположить графическое поле PictureBoxи присвоить его свойству Dockзначение Top. Затем на форме надо расположить объект Splitterи его свойству Dockтоже присвоить значение Top. Также следует расположить на форме текстовое поле TextBox. Его свойству Multilineнадо присвоить значение True, а свойству Dock— значение Fill. Внешний вид получившегося приложения показан на рис. 3.17.
Рис. 3.17. Применение элемента Splitter в приложении
Даже без единой строчки написанного кода запущенное приложение будет вполне функционально. Если нужно увеличить область текстового поля для ввода новых данных, то достаточно нажать стилусом на разделителе и передвинуть его чуть выше.
Элемент управления 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также является новым элементом, который появился в .NET Compact Framework 2.0. Он позволяет выбирать не только дату, но и время.
На форме надо разместить элемент DateTimePickerи две текстовые метки Label, в которых будут отображаться дата и время. Затем нужно дважды щелкнуть на элементе DateTimePicker, чтобы задать код обработчика события ValueChanged. Этот код приведен в листинге 3.27.
Листинг 3.27
private void dateTimePicker1_ValueChanged(object sender, EventArgs e) {
lblDate.Text = "Дата: " + dateTimePicker1.Value.ToShortDateString();
lblTime.Text = "Время: " + dateTimePicker1.Value.ToShortTimeString();
Читать дальше