Опубликован: 13.07.2010 | Доступ: свободный | Студентов: 890 / 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 выбраны не совсем удачно и пересекаются с именами свойств системных элементов. Имя пространства имен проекта оболочка формирует автоматически по имени проекта.
-
Постройте
приложение и проверьте его работу. Результат должен быть
примерно таким





