C# 关闭主窗体

C# 关闭主窗体,c#,winforms,C#,Winforms,我正在用c#Windows窗体开发一个简单的应用程序。主窗体打开另一个窗体,但我不想要两个窗体。我希望当第二个窗体打开时,第一个窗体关闭。因为第一种形式是主要的用途 this.Close(); 显示第二个窗体后,将关闭这两个窗体。所以我用这个来代替 private void btnSubmit_Click(object sender, EventArgs e) { frmData QS = new frmData(); QS.Show

我正在用c#Windows窗体开发一个简单的应用程序。主窗体打开另一个窗体,但我不想要两个窗体。我希望当第二个窗体打开时,第一个窗体关闭。因为第一种形式是主要的用途

    this.Close();
显示第二个窗体后,将关闭这两个窗体。所以我用这个来代替

    private void btnSubmit_Click(object sender, EventArgs e)
    {
         frmData QS = new frmData();
         QS.Show();
         this.WindowState = FormWindowState.Minimized;
         this.ShowInTaskbar = false;
    }

    private void frmData_FormClosed(object sender, FormClosedEventArgs e)
    {
        Application.Exit();
    }
我想知道是否还有其他方法可以做到这一点

任何帮助都将不胜感激。

隐藏第一个表单

private void btnSubmit_Click(object sender, EventArgs e)
{
     frmData QS = new frmData();
     QS.Show();
     this.Hide();
}

private void frmData_FormClosed(object sender, FormClosedEventArgs e)
{
    Application.Exit();
}

不要将主窗体作为参数传递给
应用程序。运行

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);

MainForm frmMain = new MainForm();
frmMain.Show();

Application.Run();
因此,您可以在显示其他表单时关闭它:

private void btnSubmit_Click(object sender, EventArgs e)
{
     frmData QS = new frmData();
     QS.Show();
     this.Close();
}
要关闭应用程序,您应该使用

Application.Exit();

实际上,如果关闭主窗体,就不可能关闭主窗体,因为它会关闭同一项目的所有窗体。你只能把它藏起来


顺便说一句,您只能在一行中打开和显示表单,如下所示:
newformname().show()

您可以隐藏表单,如图所示+1您比我先找到答案。就像我会回答的一样@lazyberezovsky this.close终止应用程序。@SriramSakthivel真的吗?主窗体与app life的关系如何?+1刚刚理解了编辑后的代码..已经删除了我的评论。这就是我要找的…谢谢@拉兹别列佐夫斯基是的,我刚试过。只有mainform,我又创建了一个名为show的表单,然后关闭了第一个表单应用程序terminates@SriramSakthivel查看
Program.cs
文件。您将找到传递给
应用程序的主窗体实例。运行
方法。没有其他方法可以通过关闭表单来终止应用程序