c# - 关闭除我的主表单之外的所有表单

标签 c# .net forms winforms list

我正在使用WinForms。我想关闭除名为 Form1 的主表单之外的所有表单。我注意到我的主表单是索引 0,所以我想知道我是否可以执行类似的操作,关闭除索引 0 之外的所有表单。我该怎么做?这就是我到目前为止所拥有的。

 List<Form> openForms = new List<Form>();

  foreach (Form f in Application.OpenForms)
  {
        openForms.Add(f);
        int mainFormIndex = openForms.IndexOf(0);
        Console.WriteLine(": " + mainFormIndex);


        if(mainFormIndex != 0)
        {
           this.Owner.Close();
           }
           else
           {
             this.Close();
           }
        }
  }

最佳答案

您可以通过以下方式使用 linq 关闭除 Form1 实例之外的所有表单:

Application.OpenForms.Cast<Form>().Where(x => !(x is Form1))
           .ToList().ForEach(x => x.Close());

关于c# - 关闭除我的主表单之外的所有表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40561167/

相关文章:

c# - 如果动态对象不包含属性,则获取默认值

c# - 用于像 Wireshark Diagnostics 这样的窗口的 XAML?

php - WooCommerce 以编程方式创建的产品忽略价格排序过滤器

ruby-on-rails - Rails form_for 条件参数

c# - 如何从 XML 中获取值?

c# - 我在 Mysql 中遇到希伯来语问题。我与 Visualstudio10、连接器和 linq 一起使用。我能做些什么?

c# - 验证 .vhd 文件实际上是 vhd

c# - 错误 :Could not find installable ISAM

java - 我们可以根据 id 以外的任何其他唯一字段更新 Keycloak 中的用户吗?

php - 获取最后选中的复选框