关闭主窗体

本文关键字:窗体 | 更新日期: 2023-09-27 18:24:27

我正在使用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();
    }

我想知道是否还有其他方法可以做到这一点。

任何帮助都将不胜感激。

关闭主窗体

不要将主窗体作为参数传递给Application.Run:

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();

隐藏第一个表单。

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();
}

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

顺便说一句,你可以只在一行中打开并显示表单,如下所示:new FormName().Show();