我正在尝试使用以下代码遍历我的应用程序中所有当前打开的表单并关闭它们,除了主表单作为清理的一部分。
Dim openForms As Windows.Forms.FormCollection = Application.OpenForms
For Each frm As Windows.Forms.Form In openForms
If frm.Name.ToString() <> "FrmMainNew" Then
frm.Close()
End If
Next
但是,我得到了一个,InvalidOperationException
因为当frm.Close()
执行时,openForms
删除了其中的条目,从而改变了集合的大小。我显然做错了什么,所以如果有人能在这里指出我的问题,那就太棒了。否则,还有其他方法可以做这样的事情吗?