Hotellist.Items.Add(str); // Добавить элементы

}

}

}

 

Метод Form1_Load отображает в списке элементов hotellist список объектов, в которых хранится информация о гостиницах.

Управляющий элемент ListBox содержит свойство Items (Элементы), которое поддерживает коллекцию объектных ссылок. Сначала мы вызываем метод Items.Clear(), чтобы очистить список элементов от тех элементов, которые отображаются в нем в момент вызова метода. Потом с помощью цикла перебираем гостиницы в списке массивов и создаем строку, которая состоит из полей структуры гостиницы, разделенных запятыми. Чтобы добавить эту строку в список элементов, вызывается метод Items.Add().

Чтобы в списке элементов выбрать какой-нибудь элемент, нужно щелкнуть на нем. Выбор элемента вызовет событие SelectedIndexChanged. Доступ к выбранному элементу можно получить с помощью свойств SelectedIndex и SelectedItem. Если никакой элемент не выбран, значение SelectedItem будет равно -1. Ниже приведен код обработчика события SelectedIndexChanged.

private void hotellist_SelectedIndexChanged(object sender, EventArgs e) {

if (hotellist.SelectedIndex!= -1) {

String selected = hotellist.SelectedItem.ToString(); // выбранная строка

String[] fields;

fields = selected.Split(','); // поля = выбранное разбить;

label1.Text = fields[0]; // Город = полe [0];и т.д.

label2.Text = fields[1];

label3.Text = fields[2];

label4.Text = fields[3];

}

else {

label1.Text = "";

}

}

 

Поскольку в списке элементов элементы хранятся в виде объектных ссылок, мы выполняем приведение типа выбранного элемента к типу String. Для того чтобы выделить значения полей, разделенные запятыми, используется метод String.Split, затем значения сохраняются в массиве строк fields. Из массива эти значения переносятся в элементы label на форме для отображения.

Добавление объектов, вводимых на дополнительной форме AddHotelDialog, в коллекцию и элемент hotellist осуществляется в следующем коде:

private void button1_Click(object sender, EventArgs e) {

AddHotelDialog dlg = new AddHotelDialog();

dlg.ShowDialog();

if (dlg.HotelName!= "") {

label1.Text = dlg.HotelName;

label2.Text=dlg.City;

label3.Text=dlg.Rooms.ToString();

label4.Text=dlg.Rate.ToString();

String s=dlg.City+"," +dlg.HotelName+"," +dlg.Rooms.ToString()+"," +dlg.Rate.ToString();

hotellist.Items.Add(s);

Hotel ob=new Hotel(dlg.City,dlg.HotelName,dlg.Rooms,dlg.Rate);

list.Add(ob);

}

else {

MessageBox.Show("Введите данные", "Hotel Broker Administration",

MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

return;

}

}

Задания к лабораторной работе

 

1. Создать учебные приложения Программа2 – Программа 5 и разобрать принцип их работы. Поместите в отчет примеры работы программ, их код с комментариями.

2. Создать SDI-приложение с элементами ввода и отображения полей класса из задания к лабораторной работе 2. Для этого использовать различные элементы управления: текстовые поля, списки, независимые и радио- кнопки, а также панели и менеджеры компоновки.

3. Ввод новых данных осуществлять через дополнительную модальную форму.

4. При изменении данных запрашивать подтверждение через окно диалога. В случае неполных данных сообщать об ошибке.

5. Объекты сохранять в коллекции.

6. Реализовать просмотр всей коллекции объектов через список. Для редактирования выбранного объекта создать дополнительную форму модального диалога.

7. Добавить на форму меню, позволяющее работать с пунктами: добавить, просмотреть, удалить, редактировать, справка.

8. Дублировать основные операции панелью инструментов.

 

Вопросы к защите лабораторной работы

  1. Что такое форма и ее назначение?
  2. Что такое элементы управления? На какие группы они делятся?
  3. Как установить элемент управления на форму и проинициализировать его?
  4. Что такое событие? Как в.Net реализуются события?
  5. Что такое обработчик события?
  6. Что такое делегат?
  7. Как задаются обработчики событий для элементов управления?
  8. Как происходит подключение к прослушиванию события?
  9. Как создать собственные события и их обработчики?
  10. Как создать верхнее меню?
  11. Как добавить несколько пунктов меню?
  12. Как установить определенному пункту меню сочетание клавиш?
  13. Как создать панель инструментов?
  14. Как добавить несколько кнопок на панель инструментов?
  15. Как разместить на кнопке изображение?
  16. Как добавить новую форму в приложение?
  17. Как организовать переход к добавленной форме?
  18. Что такое модальная и немодальная форма? Как они вызываются?
  19. Как добавить новый класс в проект?
  20. Какая компонента позволяет отображать список на форме?
  21. Какие компоненты позволяют создать набор радио-кнопок на форме?
  22. Какая компонента позволяет задавать на форме флажок?

 

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: