В этом посте я напомню (или расскажу) вам о том, как создать модальное диалоговое окно средствами C#. Вообще, модальное окно – это диалоговое окно, при появлении которого основное окно приложения становится недоступным до закрытия диалога. Простейшим примером модального диалогового окна в C# может служить MessageBox.
1 |
MessageBox.Show (“Привет”); |
Для начала, следует создать новую форму для нашего диалога, расположить на ней какие-либо элементы для опроса пользователя и не забыть добавить кнопки (button), по нажатию которых диалог будет завершаться. У меня она выглядит следующим образом:
Теперь можно приступить к отображению созданной формы в качестве модального диалога. Естественно, для этого нужно создать экземпляр класса нашей формы:
1 |
LoginForm lf = new LoginForm(); |
Затем, желательно сообщить окну, кто будет его владельцем. Вообще, это более актуально, когда диалог не модальный. В этом случае дочернее окно будет сворачиваться и закрываться вместе с родительским.
1 |
lf.Owner = this; |
И, главное: «заставить» форму показаться, вызвав метод ShowDialog()
1 |
lf.ShowDialog(); |
Именно он вызывает форму в качестве модального диалога. Если вместо ShowDialog() воспользоваться просто Show(), то форма откроется не модально.
От модальных диалоговых окон можно получить «обратный отклик», задав в свойствах используемых на нем кнопок DialogResult.
У кнопок вроде «OK» и «Cancel» диалоговых окон, рекомендуется это свойство заполнять. Оно очень полезно, когда вызвавшей диалог форме нужно узнать, каким образом завершился диалог. Например, когда нужно применить изменения, если пользователь выбрал «OK».
1 2 3 4 |
if (DialogResult.OK == lf.DialogResult) { //делаем что-либо } |
Немодальные диалоги не возвращают DialogResult.
Полезная статья? Их будет больше, если вы поддержите меня!