6

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

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

任何帮助将不胜感激。

4

3 回答 3

11

不要将您的主要形式作为参数传递给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();
于 2013-07-23T21:07:05.907 回答
3

隐藏第一个表单。

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();
}
于 2013-07-23T21:03:25.773 回答
0

实际上,如果关闭主窗体,它会关闭同一项目的所有窗体,则无法关闭主窗体。你只能隐藏它。

顺便说一句,您可以只用一个简单的行打开并显示一个表单,如下所示:new FormName().Show();

于 2020-07-29T12:53:58.293 回答