Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Троелсен Э. -> "С# и платформа .NET. Библиотека программиста" -> 225

С# и платформа .NET. Библиотека программиста - Троелсен Э.

Троелсен Э. С# и платформа .NET. Библиотека программиста — СПб.: Питер, 2004. — 796 c.
ISBN 5-318-00750-3
Скачать (прямая ссылка): cplatforma2004.pdf
Предыдущая << 1 .. 219 220 221 222 223 224 < 225 > 226 227 228 229 230 231 .. 320 >> Следующая

// Для элемента массива создаем строку в таблице
foreach(Car с in arTheCars) {
DataRow newRow: newRow - і nventory.NewRow (): newRow["PetName"] - c.petName; newrowi'Car Make"] - cmake; newRow["Car Color"] - c.color; і nventory. Rows.Add(newRow):
}
Il А теперь указываем объект DataTabie в качестве источника данных // для элемента управления DataGrid
carDataGrid.DataSource - inventory;
}
I
Первое, что мы сделали, — создали новый объект DataTabie с именем Inventory. В мире ADO.NET объект DataTabie - это представление в оперативной памяти таблицы с данными. Очень часто объект DaU'!"ub 1 e создается как результат запроса на языке SQL, однако ничто не мешает нам, как в этом случае, создать его вручную.
После создания объекта DataTabie нам необходимо определить столбцы, из которых будет состоять эта таблица. Для этой цели мы создали три объекта DataCol umn (каждому из столбцов у нас соответствует переменная в классе Саг) и добавили их в таблицу.
Таблица нам нужна не сама по себе, а с данными из массива. Поэтому следующее наше действие — создать для каждого объекта массива строку в таблице. По-
Приложение для регистрации автомобилей с графическим интерфейсом 559
скольку класс ArrayLi st реализует интерфейс !Enumerable, проще всего сделать это при помощи конструкции foreach. И последнее, что нам осталось сделать, — указать созданный и заполненный данными объект DataTabie в качестве источника данных для элемента управления DataGrid.
К этому моменту наше приложение уже работает! Если мы его запустим, то увидим, что в DataGrid на форме будет выводиться список автомобилей. Однако это, конечно, не все, что нам нужно от приложения, и поэтому мы продолжим работу.
Реализация добавления новых объектов Саг
Добавление новых объектов Саг пользователь будет производить при помощи отдельного модального диалогового окна AddCarDlg (рис. 11.26). Создание пользовательских диалоговых окон мы уже рассматривали в главе 10 и здесь повторяться не будем. Отметим только, что в CarAddDlg содержится объект TextBox (для ввода пользователем прозвища машины) и два объекта ListBox (для выбора цвета и модели машины соответственно).
ftdd Car nwl.Ki
Per Nome I5™**
Cd or
OK Cancel
Рис. Диалоговое окно Add Саг
Для кнопки OK, конечно, мы определим свойство DialogResul t как OK Какуже говорилось в главе 10, это наделит кнопку целым рядом специальных функций. Кроме того, при нажатии на эту кнопку будет происходить создание нового типа Саг со значениями, выбранными (или введенными) пользователем. Вот код для данного диалогового окна (служебный код, относящийся к настройке элементов графического интерфейса мы приводить не будем):
public class AddCarDlg : System.Windows.Poms.Form {
Il Определяем класс для простоты доступа как public public Саг theCar = null:
protected void btnOK_CVick (object sender. System EventArgs e)
{
I/ Создаем новый объект Саг при нажатии пользователей на кнопку OK theCar - new Car(txtNaite.Text. listMake.Text. listColor.Text):
}
}
560 Глава 11
Ввод, вывод и сериализация объектов
Диалоговое окно Add Car выводится при активации пользователем меню
Make New Car. Код для этого элемента меню будет выглядеть следующим образом:
protected volo roruJten'Ne*"Car_Cl ¦' et (object sender. Syster.fverrtArgs e)
{
Il Открываем диалоговое окно и ожидаем нажатия кнопки OK AddCarDlg d - new AddCarDigO: if(d.ShowDialog{) - - DlalogResult.OK)
{
Il Добавляем в массив только что созданный объект a rTheCa rs.Add(й. theCar): UpdateGridO;
}
Все просто и знакомо — при активации пункта меню открывается модальное диалоговое окно, а при нажатии в нем кнопки окно закрывается, и созданный объект (.--помещается в массив ArrayList. Затем производится обновление DataGrid.
Код сериализации
Материал, с которым мы познакомились в этой главе, позволяет нам без труда создать код обработчиков событий Click для пунктов меню Save Car File и Open Car File. При выборе Save Car File программа должны создать новый файл и записать в него информацию сериализации объекта в двоичном формате (конечно, при помощи BinaryForrnatter). Чтобы предоставить пользователю больше возможностей выбора, мы используем для выбора имени файла стандартное диалоговое окно, представленное типом System. Wi ndows. Forms. SaveFi 1 eDi al og. Внешний вид этого окна (хорошо всем знакомый) представлен і і;* рис. 11.27.
Desktop My Documerils
®
My Ciimiiulei
ш
3 «-E)-e*B-
RIe Dam«
Saveasfcipe: |car files (¦.tar]
3
3
Cancel
Л
Рис. 11.27. Стандартное диалоговое окно для сохранения файла
Большую часть свойств SaveFi 1 eDialog мы рассматривать не будем, отметимтолько один момент: мы воспользуемся свойством для подсказки пользователю,
Приложение для регистрации автомобилей с графическим интерфейсом 561
что файл с информацией о сериализации лучше сохранять с расширением Это свойство может принимать несколько значений, которые затем появятся в ниспадающих списках File name и Save as type. Полный код сериализации будет выглядеть следующим образом:
Предыдущая << 1 .. 219 220 221 222 223 224 < 225 > 226 227 228 229 230 231 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100