C# 如何从1级转到2级并反向?

C# 如何从1级转到2级并反向?,c#,winforms,C#,Winforms,我正在做一个C#window窗体的项目。我已经创建了登录表单和管理表单。登录后,管理员表单将显示,在该表单中,一个按钮是他们的,即注销。单击它时,会显示错误消息“已以模式显示的表单无法显示为模式对话框在调用showDialog之前关闭表单”。 点击登录按钮(登录) 单击一次注销按钮 private void button4_Click(object sender, EventArgs e) { this.Close(); login l = new login();

我正在做一个C#window窗体的项目。我已经创建了登录表单和管理表单。登录后,管理员表单将显示,在该表单中,一个按钮是他们的,即注销。单击它时,会显示错误消息“已以模式显示的表单无法显示为模式对话框在调用showDialog之前关闭表单”。 点击登录按钮(登录)

单击一次注销按钮

private void button4_Click(object sender, EventArgs e)
{
     this.Close();
     login l = new login();
     this.ShowDialog(l);           
}
替换此项:

a.ShowDialog();
this.ShowDialog(l);
为此:

a.Show();
this.Show(l);
替换此项:

a.ShowDialog();
this.ShowDialog(l);
为此:

a.Show();
this.Show(l);

在登录按钮下:

    private void loginButton_Click(object sender, EventArgs e)
    {
        Hide();
        var admin = new Admin {Owner = this};
        admin.Show();
    }
在注销按钮下:

    private void logoutButton_Click(object sender, EventArgs e)
    {            
        Owner.Show();
        Close();
    }