Цель работы: Изучить основные способы построения диалоговых окон, их параметры и получить практические навыки в разработке
Диалоговое окно - это форма, обладающая некоторыми специальными характеристиками. Первая отличительная черта большинства диалоговых окон - то, что их размер изменять нельзя. Кроме того, в диалоговых окнах обычно не используются элементы управления, помещаемые в верхнюю часть обычных форм: ControlBox, MinimizeBox и MaximizeBox. Для пользователя диалоговое окно в противоположность обычному является практически неизменяемым.
Диалоговые окна бывают модальные и немодальные. Если приложение открывает модальное окно, то работа приложения блокируется до тех пор, пока не будет закрыто модальное окно. Немодальные окна могут работать одновременно с породившим их главным окном приложения. Такие окна часто используются для "плавающих" инструментальных панелей, настройки различных параметров приложения, причем отсутствие модальности позволяет использовать в приложении измененные параметры, не закрывая окна настройки этих параметров.
Простейшее модальное диалоговое окно можно создать на базе класса MessageBox, входящего в библиотеку Microsoft .NET Framework. В лабораторной работе 3 иллюстрировалось применение простейшего модального диалогового окна для вывода сообщения об активизации метода Undo. Для отображения диалогового окна использовался метод Show, передав ему через параметр текст сообщения "метод Undo". Прототип использованного метода Show следующий:
public static DialogResult Show(string message);
Когда пользователь щелкает кнопку ОК, метод Show возвращает значение, равное DialogResult.OK
Существует множество перегруженных вариантов метода MessageBox.Show, позволяющих задать необходимый внешний вид диалоговой панели, а также количество и тип расположенных на ней кнопок.
Прототип наиболее общего варианта метода MessageBox.Show, позволяющий реализовать практически все возможности диалогового окна MessageBox, приведен ниже
public static DialogResult Show
{
string message, // текст сообщения
string caption, // заголовок окна
MessageBoxButtons btns, // кнопки, расположенные в окне
MessageBoxIcon icon, // значок, расположенный в окне
MessageBoxDefaultButton defButton, // кнопка по умолчанию
MessageBoxOptions opt // дополнительные параметры
};
Параметр )
| Константа | Кнопки, отображаемые в окне MessageBox |
|---|---|
ОК |
OK |
OKCancel |
OK, Cancel |
YesNo |
Yes, No |
YesNoCancel |
Yes, No, Cancel |
RetryCancel |
Retry, Cancel |
AbortRetryIgnore |
Abort, Retry, Ignore |
Параметр ).
| Константа | Значок |
|---|---|
|
![]() |
Error, Stop |
![]() |
Exclamation, Warning |
![]() |
Question |
![]() |
None |
Значок не отображается |
Параметр ).
| Константа | Номер кнопки, получающей фокус ввода по умолчанию |
|---|---|
Button l |
1 |
Button 2 |
2 |
Button 3 |
3 |
Если в диалоговом окне отображаются кнопки Yes, No и Cancel, то они будут пронумерованы последовательно: кнопка Yes получит номер 1 (константа Button1 ), кнопка No - номер 2 (константа Button2 ), а кнопка Cancel - номер 3 (константа Button3 ).
Параметр ).
| Константа | Описание |
|---|---|
DefaultDesktopOnly |
Окно с сообщением отображается только на рабочем столе, выбранном по умолчанию |
RightAlign |
Текст сообщения выравнивается по правому краю диалогового окна |
RtlReading |
Текст отображается справа налево |
ServiceNotification |
Окно отображается на активном рабочем столе, даже если к системе не подключился ни один пользователь. Данный параметр предназначен для приложений, работающих как сервисы ОС Microsoft Windows |
Если в окне диалогового окна MessageBox имеется несколько кнопок, то для того, что бы определить, какую кнопку щелкнул пользователь, программа должна проанализировать значение, возвращенное методом MessageBox.Show.
Метод ).
| Константа | Кнопка, при щелчке которой возвращается эта константа |
|---|---|
Abort |
Abort |
Cancel |
Cancel |
Ignore |
Ignore |
No |
No |
None |
Модальное диалоговое окно продолжает работать |
OK |
OK |
Retry |
Retry |
Yes |
Yes |
Изменим метод Remove, добавив в него предупреждение перед удалением данных по сотруднику. Текст кода метода Remove должен иметь следующий вид:
private void Remove()
{
DialogResult result = MessageBox.Show(" Удалить данные \n по сотруднику? ",
"Предупреждение", MessageBoxButtons.YesNo, MessageBoxIcon.Warning,
MessageBoxDefaultButton.Button2);
switch (result)
{
case DialogResult.Yes:
{
//выполнить действия по удалению данных по сотруднику
MessageBox.Show("Удаление данных");
break;
}
case DialogResult.No:
{
//отмена удаления данных по сотруднику
MessageBox.Show("Отмена удаления данных");
break;
}
}
В результате исполнения кода приложения и выбора пункта меню "Удалить" будет выводиться предупреждение, приведенное на рисунке 4.1 .
(рис 4.1) Модальное диалоговое окно предупрежденияДиалоговое окно можно создать не только на основе класса MessageBox, но и с использованием Windows - формы.
Создадим новую форму FormAbout для вывода справочной информации о разрабатываемом приложении, которое должно иметь вид представленный на рисунке 4.2 .
(рис 4.2) Общий вид Windows - формы FormAboutДля этого добавим в проект новый компонент (рисунок 4.3), выбрав из списка ).

(рис 4.4) Выбор режима добавления нового компонента в проект(рис 4.3) Добавление нового компонента в проектДля класса AboutBox можно задать логотип и дополнительную информацию. По умолчанию данный класс берет дополнительную информацию из метаданных сборки. Проверьте это.
Мы введем собственную информацию. Для этого изменим фрагмент кода конструктора класса AboutBox1 следующим образом.
public AboutBox1()
{
InitializeComponent();
this.Text = String.Format("О программе {0}", AssemblyTitle);
this.labelProductName.Text = AssemblyProduct;
this.labelVersion.Text = String.Format("Version {0}", AssemblyVersion);
this.labelCopyright.Text = "@РГЭУ, 2008";
this.labelCompanyName.Text = "Долженко А.И.";
this.textBoxDescription.Text = "Дисциплина Современные технологии программирования. Студенческий проект";
}
Для открытия пользовательского модального диалогового окна используется метод ShowDialog. В лабораторной работе диалоговое окно должно открываться при щелчке пользователем на пункте в меню "Справка/О программе". Код для открытия диалогового окна может выглядеть следующим образом:
// Открываем модальное диалоговое окно
private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
{
AboutBox1 aboutBox = new AboutBox1();
aboutBox.ShowDialog(this);
}
ShowDialog: при использовании кода ход выполнения программы будет приостановлен вплоть до того момента, пока метод ShowDialog не вернет соответствующее значение. Для пользователя это значит, что ему придется закрыть диалоговое окно, прежде чем он сможет выполнить какие-либо операции на главной форме.
После компиляции и загрузки приложения, вызвав пункт меню "Справка/О программе" на дисплеи будет выведено диалоговое окно, приведенное на рисунке 4.5.
(рис 4.5) Вызов модального окнаПри нажатии на кнопку ОК диалоговое окно будет автоматически закрыто и в ходе дальнейшего выполнения программы можно выяснить значение свойства DialogResult.
MessageBox.Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.