Form1 browser = new Form1(textBoxUserName.Text.Trim(), textBoxOldPassword.Text.Trim(), textBoxNewPassword.Text.Trim());
browser.Shown += (o, t) => { this.Close(); };
browser.Show();
我想要显示新窗口并关闭旧窗口。
正在发生的事情是,当调用this.Close()时应用程序正在自动关闭
我正在使用WinForms
答案 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()。