首页 > 解决方案 > 如何使用按钮关闭所有加载的表单

问题描述

假设我有 4 个打开的表格。当我按下 Form4 中的按钮时,我想关闭除第一个表单之外的所有表单。查看我的示例代码:

//Form1
private void button1_Click(object sender, EventArgs e)
{
    using (Form2 frm = new Form2())
    {
        frm.ShowDialog();
    }   
}
//Form2
private void button1_Click(object sender, EventArgs e)
{
    using (Form3 frm = new Form3())
    {
        frm.ShowDialog();
    }
}
//Form3
private void button1_Click(object sender, EventArgs e)
{
    using (Form4 frm = new Form4())
    {
        frm.ShowDialog();
    }
}
//Form4
private void button1_Click(object sender, EventArgs e)
{
    //So basically all forms are shown. What I want is when I press this button
    //all forms will close including this one except the first form.
}

我正在考虑的是使用 FormClosing() 事件。这是理想的还是有其他方法可以做到这一点?

标签: c#winforms

解决方案


您可以使用此代码块

for (int i= App.Current.Windows.Count - 1; i>= 0; i--)
   App.Current.Windows[i].Close();

它适用于我的电脑

App.Current.windows 获取所有窗口,然后可以关闭每个窗口


推荐阅读