C# 我的登录表单在转到用户表单时隐藏,反之亦然。但在那之后,当我关闭登录面板时,它仍然在后台运行

C# 我的登录表单在转到用户表单时隐藏,反之亦然。但在那之后,当我关闭登录面板时,它仍然在后台运行,c#,winforms,C#,Winforms,第一个按钮将我们带到用户表单,第二个按钮将我们带回到登录表单 但是,如果登录表单在登录后关闭,它将保留在后台,但如果没有人单击登录并仅关闭登录表单,那么它将正常关闭 如果我直接关闭用户窗体,它也会留在后台。我还尝试了this.Close()命令,但如果我这样做,当前窗体将关闭,而另一个窗体则根本不打开 private void User_login_b_Click(object sender, Event Args e) { this.Hide(); User user = ne

第一个按钮将我们带到用户表单,第二个按钮将我们带回到登录表单

但是,如果登录表单在登录后关闭,它将保留在后台,但如果没有人单击登录并仅关闭登录表单,那么它将正常关闭

如果我直接关闭用户窗体,它也会留在后台。我还尝试了
this.Close()命令,但如果我这样做,当前窗体将关闭,而另一个窗体则根本不打开

private void User_login_b_Click(object sender, Event Args e)
{
    this.Hide();
    User user = new User();
    user.Show();
}


private void Logout_b_Click(object sender, Event Args e)
{
    this.Hide();
    Login login = new Login();
    login.Show();
}
在注销单击事件处理程序中,您正在创建登录表单的新实例,而第一个实例仍然存在。您需要使用Application.OpenForms集合来查找现有实例并再次显示它

private void Logout_b_Click(object sender, Event Args e)
{
    this.Hide();
    Login login = Application.OpenForms.Cast<Login>();
    if(login == null) 
         login = new Login();
    login.Show();
}
private void注销\u b\u单击(对象发送方,事件参数e)
{
this.Hide();
Login Login=Application.OpenForms.Cast();
if(login==null)
login=新登录();
login.Show();
}
请不要标记垃圾邮件。1) 似乎不太可能同时使用Visual Studio和Visual Studio代码开发应用程序。2) 您用来编写代码的工具对代码的运行无关紧要。3) 这不是关于WinForms designer的问题。您的问题是关于WinForms API的。