我想使用下面的代碼遍歷我的應用程序中的所有當前打開的窗體,並關閉它們,除了主窗體作爲清理的一部分。通過Windows窗體迭代並關閉它們?
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
的條目被刪除,改變了集合的大小。我顯然做錯了,所以如果任何人都可以在這裏指出我的問題,那就太棒了。否則,是否有另一種方式來做這樣的事情?
謝謝!這對我有效。 – Cuthbert