форма, не показывающая

Возможно, это имеет некоторое отношение к нему являющийся mainForm, но я задам вопрос. У меня есть свой mainForm, который является первым для загрузки, когда программа загружается.

Я затем нажимаю кнопку под названием, Добавляют, который должен открыть новую форму, и закрывать mainForm.

Проблема, является шоу новая форма в течение доли секунды, затем закрывает обоих.

Код:

private void addFrmBtn_Click(object sender, EventArgs e)
    {
        saveForm saveform = new saveForm();
        saveform.Show();
        this.Close();
    }
5
задан sark9012 19 April 2010 в 12:11
поделиться

5 ответов

В вашем методе Program.Main () у вас, вероятно, есть что-то вроде этого:

class Program
{
    void Main()
    {
        Application.Run(new MainForm());
    }
}

Это означает, что цикл сообщений вашего приложения выполняется вокруг основной формы. Как только он закрывается, основной поток пользовательского интерфейса приложения отправляется вместе с ним.

Вы можете либо:

Вот как выберите вариант 3:

private void addFrmBtn_Click(object sender, EventArgs e)
{
    saveForm saveform = new saveForm();
    saveform.Show();
    this.Hide();
}
6
ответ дан 14 December 2019 в 04:33
поделиться

Проблема заключается в том, что вы закрываете родительскую форму, которая открыла дочернюю форму. Чтобы сохранить форму, используйте this.Hide () ; вместо того, чтобы закрыть.

1
ответ дан 14 December 2019 в 04:33
поделиться

Я думаю, вы показываете основную форму с:

Application.Run (new MainForm ());

Это код по умолчанию, сгенерированный Visual Studio, и его поведение может быть неожиданным:

This method adds an event handler to the mainForm parameter
for the Closed event. The event handler calls ExitThread to
clean up the application.

http://msdn.microsoft.com/en-us/library/ms157902 .aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.application.run.aspx

Либо не передавайте форму в Application.Run (), либо используйте .Hide () вместо .Close ().

0
ответ дан 14 December 2019 в 04:33
поделиться

Я полагаю, когда основная форма закрывается, ваше приложение завершается. Измените свой код на этот:

private void addFrmBtn_Click(object sender, EventArgs e) 
    { 
        saveForm saveform = new saveForm(); 
        saveform.Show(); 
        this.Hide(); 
    } 
1
ответ дан 14 December 2019 в 04:33
поделиться

в свойствах проекта, в режиме выключения, выберите «При закрытии последней формы»

извините, этот параметр, похоже, работает только в проекте Visual Basic

0
ответ дан 14 December 2019 в 04:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: