Лабораторная работа № 4
Тема: Создание модального диалога
Программа 5:
1. Cоздайте новое приложение AdminForm. На форме расположите кнопки Add и Exit и 4 элемента Label для отображения информации (рис. 3.3). По щелчку на кнопке Add отображается пустая форма AddHotelDialog.cs. Это обычная форма.
2. Откройте файл AddHotelDialog.cs в режиме конструктора. В окне Properties установите значение свойства FormBorderStyle равным FixedDialog.
3. Установите значение свойств ControlBox, MinimizeBox и MaximizeBox равным false.
4. Добавьте на форму текстовые поля TextBox и Label, содержащие информацию о гостинице. Кроме того, необходимо добавить кнопки ОК и Cancel (рис. 3.4).
5. Установите значения и имена элементов в соответствии с таблицей 1.
6. Установите значение свойства DialogResult кнопки ОК равным ОК. Точно так же установите значение этого свойства кнопки Cancel равным Cancel.
Рисунок 3.3 - Окно приложения Рисунок 3.4 – Диалоговое
AdminForm окно ввода информации о гостинице
Таблица 1 - Значения свойств текстовых полей и кнопок диалога AddHotelDialog.cs
Имя (Name) | Текст |
txtCity | (не заполнено) |
txtHotelName | (не заполнено) |
txtNumberRooms | (не заполнено) |
txtRate | (не заполнено) |
cmdOk | ОК |
cmdCancel | Cancel |
7. В файле AdminForm.cs временно добавьте к обработчику cmdAdd_Click код, который отвечает за отображение окна диалога. Диалоговое окно отображается с помощью метода ShowDialog, а не метода Show, который используется для обычных форм.
8. Скомпонуйте и запустите пример. Теперь диалоговое окно уже можно открыть с помощью кнопки Add, а закрыть— с помощью любой из кнопок ОК или Cancel. Можно проверить, что диалоговое окно является модальным, пощелкав мышью где-нибудь еще в приложении.
9. Закрыть приложение можно кнопкой Exit, добавив обработчик события:
Передача данных между диалогом и родительской формой
Для этих целей в классах.NET Framework нет встроенного механизма. В классе диалога для каждого сообщения, которое будет передаваться между родительской формой и диалогом, нужно определить свойство. Добавим в класс AddHotelDialog свойства City, HotelName, Rate (Стоимость) и NumberRooms.
// Программа AddHotelDialog.cs
public partial class AddHotelDialog: Form
{
public bool flag = false;
public AddHotelDialog()
{
InitializeComponent();
}
Private void cmdOk_Click(object sender, EventArgs e)
{
if (City!= "" && HotelName!= "" && Rooms.ToString()!= "" && Rate.ToString()!= "")
{
if (MessageBox.Show("Are you sure?", "Изменение данных.", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.No) return;
flag = true;
}
Else
{
MessageBox.Show("Неверно введены данные!", "Administration", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return;
}
Close();
}
Private void AddHotelDialog_Load(object sender, EventArgs e)
{
}
}
}
Теперь можно использовать эти свойства при закрытии диалогового окна с помощью кнопки ОК.
// программа Form1.cs
Создание панели инструментов
Кнопки панели инструментов обеспечивают пользователям более легкий доступ к возможностям, которые определены в меню. Для этого используется класс ToolStrip.
Для добавления объекта панель инструментов:
· перетащить объект ToolStrip с панели Toolbox;
· растянуть на форме, расположив в нужной части окна;
· по умолчанию будет сформировано метка на панели для выбора типа объектов панели инструментов;
· выберите объект Button. Появится заготовка для кнопки с изображением. Для добавления изображения на кнопку, нужно щелкнуть по кнопке правой клавишей мыши и выбрать пункт Set Image. В появившемся окне нажать кнопку Import и выбрать путь к рисунку.
Файл-выход
Правка – добавить данные, изменить, удалить, показать весь список
Справка - разработчик