Показать диалог ввода в WinForms

Я хотел бы показать модальное окно ввода в моем приложении WinForm. Я поискал в сети, но не нашел для этого подходящего шаблона. Я понимаю, что мне придется создать другую форму и использовать метод ShowDialog.


person Yuriy Faktorovich    schedule 07.09.2009    source источник
comment
Пример есть в reflectionit.nl/Articles/InputBox.aspx.   -  person Preet Sangha    schedule 28.08.2012
comment
stackoverflow.com/a/17546909/740639 - еще один пример класса приглашения ввода, который можно скопировать и вставить.   -  person Walter Stabosz    schedule 15.04.2020


Ответы (1)


Ты прав.

Обратите внимание, что модальные диалоги не удаляются автоматически при закрытии (в отличие от немодальных диалогов), поэтому вам нужен шаблон вроде:

using (FrmModal myForm = new FrmModal())
{
    DialogResult dr = myForm.ShowDialog();
    if (dr == DialogResult.OK)
    {
        // ...
    }
    else
    {
        // ...
    }
}

В самой новой форме (которую я назвал FrmModal) установите свойство DialogResult в обработчиках событий кнопок соответствующим образом, например если у вас есть кнопка OK, вы можете установить DialogResult = DialogResult.OK в обработчике событий для этой кнопки, а затем вызвать Close (), чтобы закрыть форму.

person Eric J.    schedule 07.09.2009
comment
Небольшой комментарий: установки Forms DialogResult! = None достаточно, чтобы закрыть его. - person Henk Holterman; 07.09.2009