FormCollection formsList = Application.OpenForms;
用foreach循环说,
if (thisForm.name != "Menu") thisForm.Close();
哪个工作可以,它跳过菜单,并关闭第一个,但它然后错误:
Collection was modifIEd; enumeration operation may not execute
并停止.我已经尝试了几个地方,他们都说这个foreach循环是这样做的,这是特别烦人的,因为我没有在关闭表单之后抛出我的表单,我认为可能会工作.我唯一可以想到的是从后面开始,使用一段时间前进.
任何帮助非常感谢,紧急,尽管截止日期是16:55 GMT今天!
干杯
瑞安
在这种情况下,您可以使用列表或简单数组,例如:
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#中的主菜单所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)