Отображение модального диалога (messageBox) останавливает другие окна в приложении - PullRequest
3 голосов
/ 06 апреля 2011

У меня есть приложение, которое показывает несколько разных окон верхнего уровня, размещенных в одном потоке цикла сообщений.Это существует, чтобы позволить пользователю открывать различные представления одних и тех же данных.(В MS Outlook вы можете щелкнуть правой кнопкой мыши по другой папке и выбрать «открыть в новом окне», чтобы получить похожее поведение.)диалоговое окно или окно сообщения он замораживает все родственные окна родителя.

Когда я открываю модальное диалоговое окно, мне бы хотелось, чтобы оно было только модальным относительно окна родителя / владельца, а не модальным по отношению к другим окнам верхнего уровня в приложении.Есть ли разумный способ сделать это?Я рассмотрел:

  • Замена модальных диалогов немодальными диалогами и отключение родительского окна при их открытии
  • Создание различных потоков в приложении для каждого из этих окон

Любой совет?

1 Ответ

4 голосов
/ 06 апреля 2011

Это то, что означает «модальный».Вы должны сделать его немодальным, использовать форму и отобразить ее с помощью метода Show ().Чтобы отключить части пользовательского интерфейса, установите для свойства Enabled элементов управления или форм значение false.Используйте событие формы FormClosed, чтобы вернуть его в значение true.Помните, что это обычно не улучшает юзабилити.

...