Я хотел бы показать модальное окно ввода в моем приложении WinForm. Я поискал в сети, но не нашел для этого подходящего шаблона. Я понимаю, что мне придется создать другую форму и использовать метод ShowDialog.
Показать диалог ввода в WinForms
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
Небольшой комментарий: установки Forms DialogResult! = None достаточно, чтобы закрыть его.
- person Henk Holterman; 07.09.2009