C#Window在创建后立即关闭

时间:2012-09-20 20:05:47

标签: c# winforms

Form1 browser = new Form1(textBoxUserName.Text.Trim(), textBoxOldPassword.Text.Trim(), textBoxNewPassword.Text.Trim());
browser.Shown += (o, t) => { this.Close(); }; 
browser.Show(); 

我想要显示新窗口并关闭旧窗口。

正在发生的事情是,当调用this.Close()时应用程序正在自动关闭

我正在使用WinForms

2 个答案:

答案 0 :(得分:2)

我假设您的代码来自您的主要表单ParentForm,而消息泵是由

启动的
Application.Run(new ParentForm());

ParentForm关闭时结束。要实现你想要做的事情,你宁可写:

[STAThread]
static void Main()
{
    Form form = new ParentForm();
    form.Show();

    Application.Run(); // starts the message pump
}

在这种情况下,您必须明确调用Application.Exit()来结束您的程序,例如

public class Form1 : Form
{
    protected override void OnClosed(EventArgs e)
    {
        base.OnClosed();

        Application.Exit();
    }
}

更干净的方法是使用ApplicationContext

答案 1 :(得分:0)

如果这是您的应用程序加载的第一个表单,如果您关闭它,应用程序将关闭。

而不是this.Close()

请将其写为this.Hide()。