System.Windows.MessageBox не дожидается ввода пользователя перед тем, как перейти к пуху!

... и не имеет смысла почему. T-T

В моем обработчике событий Application_Startup у меня есть код, который выглядит примерно так:

private void Application_Startup(object sender, StartupEventArgs e)
{
    string errorMessage;

    if(CheckStartUpConditions(out errorMessage))
    {
        (new MainWindow()).Show();
    }
    else
    {
        MessageBox.Show(errorMessage, "Application Startup", 
            MessageBoxButton.OK, MessageBoxImage.Error);

        Shutdown();
    }
}

private bool CheckStartUpConditions(out string errorMessage)
{
    errorMessage = string.Empty;  

    if(...)
        errorMessage += "Please login to xxx. ";

    if(...)
        errorMessage += "Please install xxx.";

    if(string.IsNullOrEmpty(errorMessage))
        return true;
    else
        return false;
}

Окно сообщения ненадолго появляется примерно на секунду перед тем, как произнести «POOF!». Я не дожидаюсь, пока я нажму «ОК» или кнопку «Х». Я действительно озадачен, почему это происходит, поэтому любая помощь будет очень признательна .

Я пробовал закомментировать вызов Shutdown только для шуток и хихиканья, но он по-прежнему ведет себя так же.

Кроме того, в приложении есть SplashScreen , поэтому я не знаю, влияет ли это на это.

РЕДАКТИРОВАТЬ: Я добавил больше кода, если это поможет. В окне сообщения отображается правильное сообщение об ошибке. Просто не останется достаточно долго, чтобы пользователи ее прочитали. >: (

ИЗМЕНИТЬ ЧАСТЬ 2: Хорошо ... Думаю, я нашел виновника. :( Я изменил действие сборки на изображении, которое использую в качестве заставки, с SplashScreen на None, и теперь появится окно сообщения оставайтесь и ждите ввода данных пользователем. Я не понимаю, почему SplashScreen не работает с MessageBox.>: (

16
задан Ashley Grenon 7 May 2011 в 19:01
поделиться