首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检测窗口是否关闭C#,?

如何检测窗口是否关闭C#,?
EN

Stack Overflow用户
提问于 2022-02-19 15:10:43
回答 1查看 279关注 0票数 0

因此,我正在制作一个工资管理系统作为一个业余项目,以帮助我的简历和c#的一般知识。因此,我正在创建一个UI,我可以用以下代码打开一个新窗口:

代码语言:javascript
复制
private void button1_Click(object sender, EventArgs e)
{
            CreateAdminAcct createAcct = new CreateAdminAcct();
            createAcct.StartPosition = FormStartPosition.CenterScreen;
            createAcct.Show();

            this.Hide();
}

但是,我不知道要检查什么时候单击了小红"x“按钮,因为当单击该按钮时,我想返回到主屏幕,因为单击该按钮时我隐藏了主屏幕,而当我单击刚刚打开的屏幕上的红色"x”时,它会关闭,但应用程序继续在后台运行。

如果有更好的方法来管理多个菜单,我愿意接受建议,然而,这是我发现的最简单的方法。

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2022-02-19 20:40:30

我支持Robert的建议,这给了用户一个保证:这个窗口仍然打开/什么也没有丢失,但是当CreateAdminAcct表单打开时,它是无法达到的“隐藏”CreateAdminAcct表单的

代码语言:javascript
复制
private void button1_Click(object sender, EventArgs e)
{
        CreateAdminAcct createAcct = new CreateAdminAcct();
        createAcct.StartPosition = FormStartPosition.CenterScreen;
        createAcct.ShowDialog();

        //do any code here that needs to access createAcct before it's lost
        MessageBox.Show(createAcct.NewAdmin.Name);
}

如果您确实希望隐藏主窗体,请将主窗体本身传递给createAcct,并使其在主窗体关闭时重新打开

代码语言:javascript
复制
private void button1_Click(object sender, EventArgs e)
{
        CreateAdminAcct createAcct = new CreateAdminAcct(this); //note passing this form to constructor
        createAcct.StartPosition = FormStartPosition.CenterScreen;
        createAcct.Show();
}

class CreateAcctForm : Form{
  private Form _showWhenClosing;
  CreateAcctForm(Form revertTo){
    InitializeComponent();
   
    _showWhenClosing = revertTo;
  }
}

void Form_Closing(object sender, ...){  //event
  _showWhenClosing.Show();
}

附带注意:请在您将控件放入窗体后重命名它们。塞满了label57的代码,textbox25实际上是模糊的,而且非常令人厌烦

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71186241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档