c#中的窗体关闭问题

本文关键字:问题 窗体 | 更新日期: 2023-09-27 18:13:14

我有一个Login Form,在登录时间检查角色。如果角色为Normal User,则打开Form1。如果角色是Register,则打开Form2。打开Form1Form2后,我使用this.close关闭登录表单。当角色为Normal User时,它将完全打开表单1并关闭登录表单,而当角色为Register时,它将关闭两个表单。

代码如下:

if (ROLE != "Register")
{
    Form1 form1= new Form1();
    if (ROLE == "Normal User")
    {
        form1.Show();
        this.Close();
    }
    if (ROLE == "Bulk User")
    {
        form1.Show();
        this.Close();
    }
}
else
{
    Form2 form2= new Form2();
    form2.Show();
    this.Close();
}

Login FormForm1是WPF表单,而Form2是Windows表单

c#中的窗体关闭问题

这是因为当父窗体关闭时第二个窗体被处理,您可以执行以下操作

else
{
      Form2 form2 = new Form2();
      form2.Show();
      this.Hide();
      form2.Closed += (s, args) => this.Close();
}