Опубликован: 13.07.2010 | Доступ: свободный | Студентов: 891 / 20 | Оценка: 4.40 / 4.20 | Длительность: 77:34:00
Тема: Программирование
Специальности: Программист, Архитектор программного обеспечения
Теги:
Самостоятельная работа 6:
Элементы управления DataGrid и ComboBox в приложениях ADO.NET на C#
Наполнение новой формы элементами интерфейса пользователя
- Введите из вкладки Windows Forms панели Toolbox элементы для отображения данных из источников данных, добавленных к форме ранее. Настройте интерфейсные элементы в соответствии с таблицей.
Окончательный дизайн формы должен выглядеть так
- Перейдите в вызывающую форму в режиме Design и также замкните на ней все элементы.
- Удерживая нажатой клавишу Schift, выделите элементы ComboBox, DataGrid на самой форме и элемент dsOrdersForCustomer в подвале формы. В панели свойств установите для этих элементов свойство Modifier в значение Public, чтобы сделать эти элементы доступными в классе второй формы
- Введите в обработчик события Load второй формы, который мы создали ранее, следующий код
//*************************************************************** private void Child_Load(object sender, System.EventArgs e) { existChild = this; // Загрузка данных из источников в отображающие элементы object obOrderID; // Заполнить набор данных из поставщика this.odaEmployees.Fill(this.dsEmployees); // Получить из вызывающей формы значение поля OrderID, // выделенного в данный момент в ее элементе DataGrid obOrderID = WinADODataGrid.Parent.existParent .dsOrdersForCustomer.Orders.Rows [WinADODataGrid.Parent.existParent.dgOrders.CurrentCell.RowNumber] .ItemArray[0];// В первом столбце находится OrderID // Обновить заголовок формы, указав в нем // заказчика и идентификатор заказа this.Text = "Заказ №" + obOrderID.ToString() + " для " + WinADODataGrid.Parent.existParent.cboCustomers.Text; // Присвоить значение OrderID параметру, // соответствующему заголовку заказа this.odaIndividualOrder.SelectCommand.Parameters[0].Value = obOrderID; // Заполнить набор данных, // который относится к заголовку заказа this.odaIndividualOrder.Fill(this.dsIndividualOrder); // Присвоить значение параметру, соответствующему // заголовку заказа, с учетом идентификатора заказа OrderID this.odaOrderDetails.SelectCommand.Parameters[0].Value = obOrderID; // Заполнить набор данных, который относится к детализации заказа this.odaOrderDetails.Fill(this.dsOrderDetails); }Листинг 6.8. Код загрузки данных во вторую форму
Обратите внимание, что для доступа к элементам первой формы мы используем длинные имена ( WinADODataGrid.Parent. ), включающие в себя пространство имен проекта и имя класса первой формы. Это необходимо потому, что имена классов нашего проекта Parent и Child выбраны не совсем удачно и пересекаются с именами свойств системных элементов. Имя пространства имен проекта оболочка формирует автоматически по имени проекта.
- Постройте приложение и проверьте его работу. Результат должен быть примерно таким