打开一个新表单,关闭旧表单C#

5 c# forms new-operator

我有点新的C#,我试图做一个程序的各种功能,教我如何使用C#的工作做自我学习.如果我不知道什么,我通常会看到互联网,但这一直让我发疯.

我记得在一开始我开始这个我想要打开一个表格并关闭旧表格,但是当我关闭新表格时,旧表格会再次出现,以及其他奇怪的问题.this.Hide()似乎也没有做任何事情.

目前我正在使用这个代码打开一个新的表单,但感觉应该有一行代码,只需打开一个表单就可以了...我的问题是,如果有的话.

    private void OpenMainForm()
    {
        MainForm frm2 = new MainForm();
        frm2.FormClosed += new FormClosedEventHandler(frm2_FormClosed);
        frm2.Show();

        // Since this.Hide() for some reason doesn't work, i'll have to do this crap
        this.WindowState = FormWindowState.Minimized;
        this.ShowInTaskbar = false;
    }

    private void frm2_FormClosed(object sender, FormClosedEventArgs e)
    {
        this.Close();
    }
Run Code Online (Sandbox Code Playgroud)

Gab*_* GM 14

如果要在辅助窗口中隐藏主窗口,则应使用该ShowDialog()方法.有了它,你甚至不需要form_closed event.

您的代码应如下所示:

private void OpenMainForm()
{
    MainForm frm2 = new MainForm();
    this.Hide();           //Hide the main form before showing the secondary
    frm2.ShowDialog();     //Show secondary form, code execution stop until frm2 is closed
    this.Show();           //When frm2 is closed, continue with the code (show main form)
}
Run Code Online (Sandbox Code Playgroud)