gpt4 book ai didi

c# - Form1 隐藏而不是关闭

转载 作者:太空宇宙 更新时间:2023-11-03 22:54:21 25 4
gpt4 key购买 nike

我正在尝试创建一个简单的登录页面,如果我单击登录按钮,form1 应该隐藏,form2 应该弹出,在 form2 上,当我单击注销时,它应该让我回到 form1,问题是当我单击注销按钮时form2 它将我带回到 form1,但当我在 form1 上单击“X”(关闭)时,它隐藏了(我可以看到应用程序在任务管理器中运行)而不是关闭。

form1登录按钮代码:

private void button1_Click(object sender, EventArgs e)
{
Form2 mainUI = new Form2();
mainUI.Show();
this.Hide();
}

form2注销按钮代码:

private void button1_Click(object sender, EventArgs e)
{
Form1 loginPage = new Form1();
loginPage.Show();
this.Close();
}

最佳答案

问题在这里,您正在创建一个新的 Form1 实例,而不是再次打开它:

Form1 loginPage = new Form1();

这里试试这个:

private void button1_Click(object sender, EventArgs e)
{
var formToBeOpen = Application.OpenForms.OfType<Form1>().SingleOrDefault();
formToBeOpen.Show();
this.Close();
}

现在关于你的帖子,如果你关闭你的 Form2,你的 Form1 仍然在后台运行,因为这段代码:

this.Hide();

你只是隐藏它,然后打开你的 Form2,然后你点击你的 Form2 上的 X 按钮关闭你的 Form2 但不一定意味着也会关闭你的 Form1,因为它仍在运行背景。如果您想关闭 Form1,请将此添加到您的 Form2 代码中:

private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
var formToBeOpen = Application.OpenForms.OfType<Form1>().SingleOrDefault();
formToBeOpen.Close();
}

关于c# - Form1 隐藏而不是关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46151842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com