HTML   发布时间:2022-04-14  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了关闭所有打开的表单,除了c#中的主菜单大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
尝试关闭除主菜单以外的所有表单
FormCollection formsList = Application.openForms;

用foreach循环说,

if (thisForm.Name != "Menu") thisForm.Close();

哪个工作可以,它跳过菜单,并关闭第一个,但它然后错误:

并停止.我已经尝试了几个地方,他们都说这个foreach循环是这样做的,这是特别烦人的,因为我没有在关闭表单之后抛出我的表单,我认为可能会工作.我唯一可以想到的是从后面开始,使用一段时间前进.

任何帮助非常感谢,紧急,尽管截止日期是16:55 GMT今天!

干杯
瑞安

解决方法

如果您使用foreach通过集合枚举,则无法在迭代期间修改(添加或删除项目).尝试将表单的引用复制到另一个集合,然后通过遍历该集合来删除它们.

在这种情况下,您可以使用列表或简单数组,例如:

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

foreach (Form f in Application.openForms)
    openForms.Add(f);

foreach (Form f in openForms)
{
    if (f.Name != "Menu")
        f.Close();
}

或者你可以使用for循环:

for (int i = Application.openForms.Count - 1; i >= 0; i--)
{
    if (Application.openForms[i].Name != "Menu")
        Application.openForms[i].Close();
}

或者,我的新的和当前最喜欢的,你可以使用Reverse()方法:

foreach (Form f in Application.openForms.Reverse())
{
    if (f.Name != "Menu")
        f.Close();
}

大佬总结

以上是大佬教程为你收集整理的关闭所有打开的表单,除了c#中的主菜单全部内容,希望文章能够帮你解决关闭所有打开的表单,除了c#中的主菜单所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。