«Всплывающая» форма, которая отключает доступ к форме за ней

#c# #winforms

#c# #winforms

Вопрос:

Для этого есть термин, который я просто не могу придумать, и я уверен, что если бы я знал это слово, я бы не задавал этот вопрос, поскольку я бы нашел ответ в Google … но я просто не могу найти правильные термины для этого.

У меня есть стандартное приложение WinForms (.NET 4.0), с которым я работаю. У меня есть основная форма с тремя кнопками, и каждая кнопка выполняет действие беззвучно в фоновом режиме. Обработка двух кнопок занимает довольно много времени. Во время ее обработки я бы хотел, чтобы появлялось небольшое окно, в которое я мог бы вносить небольшие текстовые обновления («Выполнение действия A …», «Выполнение действия B …»).

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

Как мне создать маленькую «дочернюю» форму основной формы, которая будет делать именно это?

PS: В дополнение к текстовым обновлениям, я хочу добавить к ней небольшую анимированную графику, например, из ajaxload.info. Не уверен, влияет ли это на тип формы / окна.

Ответ №1:

Это будет называться модальным диалогом.

Ответ №2:

В WinForm вызовите ShowDialog для отображения модального окна.

Ответ №3:

И вы можете использовать ProgressBar, чтобы сообщить пользователю, сколько времени осталось (или использовать непрерывный стиль), если вы не знаете, сколько времени это займет