Разработка gui. Создание sdiприложений обработка событий
Скачать 361.78 Kb.
|
Создание панели инструментовКнопки панели инструментов обеспечивают пользователям более легкий доступ к возможностям, которые определены в меню. Для этого используется класс ToolStrip. Для добавления объекта панель инструментов: перетащить объект ToolStrip с панели Toolbox; растянуть на форме, расположив в нужной части окна; по умолчанию будет сформирована метка на панели для выбора типа объектов панели инструментов; выбрать объект Button. Появится заготовка для кнопки с изобра- жением. Для добавления изображения на кнопку нужно щелкнуть по кнопке правой клавишей мыши и выбрать пункт Set Image. В появив- шемся окне нажать кнопку Import и выбрать путь к рисунку. Список элементов ListBoxДобавьте в проект класс, описывающий объект гостиница. class Hotel { public Hotel(String city, String name, int r, double m) { City = city; HotelName = name; Rooms = r; Rate = m; } public String City, HotelName; public int Rooms; public double Rate; } При запуске программы AdminForm в процессе инициализации ме- тод Form1_Load осуществляет начальную загрузку списка элементов hotellist, в него загружается список гостиниц. public partial class Form1 : Form { ArrayList list = new ArrayList(); // список гостиниц public Form1() { InitializeComponent(); } … private void Form1_Load(object sender, EventArgs e) { Hotel ob1=new Hotel("Москва","Россия",200,1500); list.Add(ob1); Hotel ob2=new Hotel("Москва","Прага",200,3000); list.Add(ob2); Hotel ob3=new Hotel("Новосибирск","Объ",150,1500); list.Add(ob3); Hotel ob4=new Hotel("Новосибирск","Тратата",300,1200); list.Add(ob4); hotellist.Items.Clear(); if (list == null) { return; } foreach(Hotel hotel in list) { // строка для записи в элемент ListBox hotellist String city = hotel.City.Trim(); String name = hotel.HotelName.Trim(); String rooms = hotel.Rooms.ToString(); String rate = hotel.Rate.ToString(); String str = city + "," + name + "," + rooms + "," + rate; hotellist.Items.Add(str); } } } 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]; label2.Text = fields[1]; label3.Text = fields[2]; label4.Text = fields[3]; } else { label1.Text = ""; } } Добавление объектов, вводимых на дополнительной форме AddHotelDialog в коллекцию и элемент hotellist, осуществляется в обработчике события при нажатии на кнопку Add: private void cmdAdd_Click(object sender, EventArgs e) { . . . 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); . . . } ЛАБОРАТОРНАЯ РАБОТА СОЗДАНИЕ MDI-ПРИЛОЖЕНИЙ. СЕРИАЛИЗАЦИЯ ОБЪЕКТОВ. CТАНДАРТНЫЕ ДИАЛОГИЦель работы: изучить особенности разработки MDI-приложений в Visual Studio .Net; изучить способы сохранения данных в файл и загрузки из файла; освоить механизм сериализации и десериализации объектов. ЗАДАНИЯ К ЛАБОРАТОРНОЙ РАБОТЕ Создать учебные примеры и разобрать принцип их работы. Поместить примеры работы программ и их коды с коммен- тариями в отчет. Создать текстовый редактор NotepadC#, добавив недостающие пункты меню и функции. На основании лабораторной работы 3 создать MDI-приложение. Информация в окне должна отображаться в виде таблицы. Иметь воз- можность делать выборку данных по различным критериям. Перено- сить данные из одной формы в другую. Добавить формы для ввода дополнительной информации об объ- екте и фото объекта. Добавить пункты меню для сохранения объектов в файл и за- грузки. При сохранении использовать стандартные диалоговые окна и механизм сериализации. В класс добавить поле «Дата создания объек- та». Поле не сериализовать, а при десериализации заново устанавли- вать по системной дате. КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ |