Почему MessageBox не TopMost?

Недавно я обнаружил, что по умолчанию MessageBoxes не являются самой верхней формой при отображении по умолчанию, и мне было интересно, если бы кто-нибудь знал какие-либо обстоятельства, когда вы не хотели бы, чтобы окно сообщений отображалось поверх других окон?

Я обнаружил проблему, когда начал показывать заставки во время загрузки приложения, и казалось, что моя программа все еще работает, но былаMessageBox за заставкой, которая ждала ввода. Заставка была показана в другом потоке по сравнению с потоком, который вызвал окно сообщения, поэтому я думаю, что именно поэтому он не появился над всплеском; но это все еще не объясняет, почему MessageBox не имеетMB_TOPMOST флаг по умолчанию?

редактировать

Чтобы лучше уточнить: в конце мне пришлось сделать что-то похожее на это, в конце концов, чтобы создать окно сообщения, код не совсем правильный, как записано из памяти)

[DllImport("User32.dll")]
private int extern MessageBox(windowhandle, message, caption, flag);
public static void MessageBox(windowhandle, string message, string caption)
{
    MessageBox(windowhandle, message,caption, MB_TOPMOST);
}

Ответы на вопрос(5)

Ваш ответ на вопрос