Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#窗口在创建后立即关闭_C#_Winforms - Fatal编程技术网

C#窗口在创建后立即关闭

C#窗口在创建后立即关闭,c#,winforms,C#,Winforms,我希望新窗口显示,旧窗口关闭 发生的情况是,在调用this.Close()时,应用程序将自动关闭 我正在使用WinForms如果这是从中加载应用程序的第一个表单,并且如果关闭它,应用程序将关闭 而不是这个。Close() 一定要这样写。Hide() Form1 browser = new Form1(textBoxUserName.Text.Trim(), textBoxOldPassword.Text.Trim(), textBoxNewPassword.Text.Trim()); brows

我希望新窗口显示,旧窗口关闭

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


我正在使用WinForms

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

而不是这个。Close()


一定要这样写。Hide()

Form1 browser = new Form1(textBoxUserName.Text.Trim(), textBoxOldPassword.Text.Trim(), textBoxNewPassword.Text.Trim());
browser.Shown += (o, t) => { this.Close(); }; 
browser.Show(); 
当父窗体关闭时结束。为了实现你想要做的事情,你可以写:

Application.Run(new ParentForm());
在这种情况下,必须显式调用
Application.Exit()
以结束程序,例如

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

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

一个更干净的方法将使用。

我认为当父窗口关闭时,子窗口将关闭。您可以尝试
Hide()
。如何防止启动窗体退出应用程序?如果“this”是您的主窗体,则此.Close()将关闭您的应用程序。这是故意的。这是什么。。。。??首先,这在windows应用程序中是一个非常基本的概念,而且您的评论可能被窃取。这是我整理的新答案。你和我的帖子之间只有3分钟的时间差,所以我可能没有机会读你的评论。
public class Form1 : Form
{
    protected override void OnClosed(EventArgs e)
    {
        base.OnClosed();

        Application.Exit();
    }
}