При закрытии форм закрыть, как закрыть все открытые ящики сообщений

#c#

#c#

Вопрос:

Я закрываю форму с form.Dispose() помощью, но у меня проблема, что все открытые ящики сообщений не закрываются. Они все еще открыты. Как закрыть все ящики сообщений при закрытии формы? Возможно ли это?

Я использую compact framework 3.5

Комментарии:

1. Лучший способ избавиться от окна сообщения — не вызывать его метод Show() . Используйте очень экономно. Если вам нужно показать один, то автоматическое закрытие не имеет смысла.

Ответ №1:

Это невозможно. MessageBox оборачивает user32.MessageBox API, который блокирует поток, к которому он вызывается, до тех пор, пока пользователь не ответит. Они разработаны как модальные, и вам придется прервать свой процесс, чтобы закрыть их.

Вы могли бы написать свою собственную реализацию MessageBox с использованием forms и использовать ShowDialog, чтобы сделать их модальными. Таким образом, вы могли бы закрыть их самостоятельно.