Как закрыть Splashscreen? - PullRequest
       8

Как закрыть Splashscreen?

1 голос
/ 05 июля 2011

Я пишу приложение, которое извлекает данные из живого движка и работает на нем. Эти данные обновляются каждые 5 секунд.

Теперь я хотел бы иметь заставку, которая показывает индикатор выполнения для первого цикла выборки данных. Как только данные извлекаются в первый раз, приложение открывает основную форму, показывающую извлеченные данные. С этого момента основная форма извлекает данные в цикле каждые 5 секунд.

Я поместил код для открытия главной формы в событие ProgressChanged BackgroundWorker.

private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
    {
        progressBar1.Value = Math.Min(e.ProgressPercentage, 100);
        if (progressBar1.Value == 100)
        {                
            SplashScr.ActiveForm.Hide();
            frmMainForm frmMain= new frmMainForm();
            frmMain.WindowState = FormWindowState.Maximized;
            frmMain.Show();

        }
    }

Есть ли способ просто закрыть Splashscreen после загрузки главной формы или эта реализация в порядке?

Ответы [ 3 ]

4 голосов
/ 05 июля 2011

Я собираюсь предположить, что в вашем Program.Main есть что-то вроде этого:

Application.Run(new SplashForm());

Если это так, это причина, по которой ваше приложение закрывается, когда вы закрываете форму-заставку.Попробуйте что-то вроде этого:

Application.Run(new MainForm());

Затем из основной формы вы покажете форму всплеска и обработаете ее с этого конца.

HTH

0 голосов
/ 05 июля 2011

По-моему, у меня скорее есть заставка, содержащаяся в основной форме. Заставка должна отображаться во время метода init / load основной формы, и когда требуемый% данных загружен, он может быть закрыт. Так что фоновый работник должен быть создан самой главной формой.

Таким образом, метод изменения прогресса фонового рабочего просто закроет заставку. Это нормально, так как основная нить содержит ручку

0 голосов
/ 05 июля 2011

Две возможности.

Я предполагаю, что ваш заставка - это ваша «основная форма», которая является первой, созданной вашим приложением. Это тогда, по умолчанию, закроет ваше приложение, когда вы закроете его.

Итак, либо сделайте заставку другой формы, которую можно открывать и закрывать по желанию, оставляя основную форму открытой для графического интерфейса, либо вам нужно изменить операцию по умолчанию для метода close - обычно это будет свернуть при закрытии », но это имеет тот же эффект, что и сворачивание в вашем примере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...