#c#
#c#
Вопрос:
Я закрываю форму с form.Dispose()
помощью, но у меня проблема, что все открытые ящики сообщений не закрываются. Они все еще открыты. Как закрыть все ящики сообщений при закрытии формы? Возможно ли это?
Я использую compact framework 3.5
Комментарии:
1. Лучший способ избавиться от окна сообщения — не вызывать его метод Show() . Используйте очень экономно. Если вам нужно показать один, то автоматическое закрытие не имеет смысла.
Ответ №1:
Это невозможно. MessageBox оборачивает user32.MessageBox
API, который блокирует поток, к которому он вызывается, до тех пор, пока пользователь не ответит. Они разработаны как модальные, и вам придется прервать свой процесс, чтобы закрыть их.
Вы могли бы написать свою собственную реализацию MessageBox с использованием forms и использовать ShowDialog, чтобы сделать их модальными. Таким образом, вы могли бы закрыть их самостоятельно.