Смущает в событии Form_Load

private void Form1_Load(object sender, EventArgs e)
    {
        MessageBox.Show("Luanching.... This may take a few second");
............
    }

Здесь, если я не нажму кнопку "ОК" в окне сообщения, мое окно не будет отображаться (будет ждать, пока я не нажму), как это исправить, как сделать так, чтобы форма отображалась первой или как сделать так, чтобы ожидание нажатия кнопки "ОК" не происходило

4 ответа

Решение

Другой вариант - поместить фонового работника в форму. Затем в событиях дважды щелкните "DoWork" в методе, который затем создается в коде, поместите messagebox.show. Таким образом, окно сообщения отображается в отдельном потоке, и загрузка формы будет продолжена

Просто, просто переместите код MessageBox в Shown событие

private void Form1_Shown(object sender, EventArgs e)
{
    MessageBox.Show("Luanching.... This may take a few second");
}

Событие Form1_Load это точно, что это звучит, так что если вы вставите какой-то MessageBox там, Form будет загружаться только после ответа.

Рассмотрите возможность использования другого метода после Form нагрузки.

Вам не нужно использовать MessageBox, вы должны создать новый Form который показывает сообщение. новый Form будет работать в новом цикле сообщений, поэтому не будет блокировать пользовательский интерфейс, если его вызвать как

myForm.Show(), где myForm это экземпляр вашей формы.

Другие вопросы по тегам