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

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

MessageBox.Show (“Привет”);

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

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

LoginForm lf = new LoginForm();

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

lf.Owner = this;

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

lf.ShowDialog();

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

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

DialogResult

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

if (DialogResult.OK == lf.DialogResult)
{
    //делаем что-либо
}

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

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

https://money.yandex.ru/embed/small.xml?account=410011399843532&quickpay=small&yamoney-payment-type=on&button-text=06&button-size=l&button-color=orange&targets=%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%B2%D0%B0%D1%8E+%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82+lexpenz.com&default-sum=50&successURL=

Архив комментариев

2 комментария из прежней версии блога. Архив закрыт для новых ответов.

  1. отличная статейка!) Зачет!)

  2. Александр

    Подскажите, а то никак не могу разобраться! Я в диалоговом окне вставил TextBox, в котором должен вводить цифры, как мне потом использовать эти цифры из главной формы?