Эта проблема очень похожа на Эта , к сожалению, на нее тоже никто не ответил.
У меня есть главный форум MDI, на котором находятся несколько дочерних форм. Один из них выполняет длинный расчет и выдает исключение в случае ошибки (вся работа выполняется в одном потоке). Затем я пытаюсь сообщить пользователю об ошибке с помощью окна сообщения, однако оно не появляется (но захватывает фокус с MDI Main, поэтому приложение полностью не отвечает).
Поведение немного меняется, если я вызываю Application.DoEvents () (я знаю, зло, но это последнее средство). Тогда формы остаются полностью активными, и окно сообщения появляется только после того, как я изменяю активное приложение (Alt + Tab) на что-то другое, а затем снова обратно.
Что я могу сделать, чтобы окно сообщений было видно? Я уже пытался передать оба, активный дочерний элемент и MDI Main в качестве параметра методу MessageBox.Show. Это не меняет поведение.
Чтобы уточнить: окно сообщения является частью дочерней формы, однако на данный момент я готов показать его любым способом, который не нарушает приложение. Окно сообщения должно быть модальным, но оно должно быть видимым, чтобы пользователь мог его подтвердить.