Создание модального диалогового окна средствами C#

{lang: 'ru'}

В этом посте я напомню (или расскажу) вам о том, как создать модальное диалоговое окно средствами C#. Вообще, модальное окно – это диалоговое окно, при появлении которого основное окно приложения становится недоступным до закрытия диалога. Простейшим примером модального диалогового окна в C# может служить MessageBox.

Для начала, следует создать новую форму для нашего диалога, расположить на ней какие-либо элементы для опроса пользователя и не забыть добавить кнопки (button), по нажатию которых диалог будет завершаться. У меня она выглядит следующим образом:

Теперь можно приступить к отображению созданной формы в качестве модального диалога. Естественно, для этого нужно создать экземпляр класса нашей формы:

Затем, желательно сообщить окну, кто будет его владельцем. Вообще, это более актуально, когда диалог не модальный. В этом случае дочернее окно будет сворачиваться и закрываться вместе с родительским.

И, главное: «заставить» форму показаться, вызвав метод ShowDialog()


Именно он вызывает форму в качестве модального диалога. Если вместо ShowDialog() воспользоваться просто Show(), то форма откроется не модально.

От модальных диалоговых окон можно получить «обратный отклик», задав в свойствах используемых на нем кнопок DialogResult.

DialogResult

У кнопок вроде «OK» и «Cancel» диалоговых окон, рекомендуется это свойство заполнять. Оно очень полезно, когда вызвавшей диалог форме нужно узнать, каким образом завершился диалог. Например, когда нужно применить изменения, если пользователь выбрал «OK».

Немодальные диалоги не возвращают DialogResult.


Полезная статья? Их будет больше, если вы поддержите меня!