Родительский элемент MDI имеет опцию меню, позволяющую отобразить форму настроек, которая отображается модально - это работает отлично.
В форме настроек было несколько путей к каталогам, которые требуют настройки, поэтому я хотел использовать FolderBrowserDialog, чтобы разрешить пользователю для перехода к нужным каталогам. Нажатие кнопки «Обзор...» должно открыть диалоговое окно, также модальное, и позволить пользователю выбрать папку, однако код просто блокируется, когда я вызываю...
Код: Выделить всё
if (folderBrowserDialog.ShowDialog(this) == DialogResult.OK)
Я проверил свойства форм, изменив TopMost обоих модальных окон (все варианты). Я подтвердил право собственности на диалоговые формы, используя this при вызове ShowDialog, я проверил наличие исключений и стек вызовов.
Нет ошибок, никаких исключений, которые я вижу, код просто останавливается. Я даже пытался скрыть форму настройки непосредственно перед отображением и сделать диалог родительским элементом MDI. Никакой радости.
Я также пробовал использовать BackgroundWorker, чтобы попытаться отобразить диалог в другом потоке на случай, если поток пользовательского интерфейса блокируется (предложено CoPilot). Не сработало.
В конечном итоге я создал свою собственную форму FolderBrowserDialog и отобразил ее - работает отлично, отображает модальное диалоговое окно над модальным окном над родительским элементом MDI, но оно выглядит по-другому и означает, что мне придется либо потратить много времени, имитируя реальный диалог, либо обеспечить худший пользовательский интерфейс.
Я также обнаружил, что попытка отобразить FolderBrowserDialog непосредственно из родительского MDI снова терпит неудачу и просто запирается. Попытка создать родительскую форму для дочерних MDI-форм тоже не работает.
Мысли? Кто-нибудь еще сталкивался с этим раньше и, что более важно, нашел решение?
Спасибо
Подробнее здесь: https://stackoverflow.com/questions/793 ... mdi-parent