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

我希望新窗口出现并关闭旧窗口。

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

我正在使用 WinForms

4

2 回答 2

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.

于 2012-09-20T21:22:58.010 回答
0

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

而不是 this.Close()

把它写成 this.Hide()。

于 2012-09-20T20:11:47.777 回答