C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 71 を表示中)
■41645 / )  Re[1]: Newで生成したFormをメインFormから閉じるには
□投稿者/ たくボン (209回)-(2009/09/26(Sat) 20:16:15)
No41644 (hs さん) に返信
> VB2008 VB

> '自フォーム以外の表示しているフォームを全て閉じる
> For Each obj As Form In Application.OpenForms
>     If obj.Name <> Me.Name Then
>         obj.Close()
>     End If
> Next

ここで、For Eachを使ってるからだよ。コレクションの列挙中に、オブジェクトの破棄を行うと次のオブジェクトの列挙ができなくなるから例外が出てるだけ。
For Eachの中で列挙するオブジェクトを破棄する場合は、Forに変更するか、個々の参照を別に持たせてそれを削除するかかな。

For i as integer = 0 to Application.OpenForms.count-1
dim frm as form = Application.OpenForms(i)
 If frm.Name <> Me.Name Then
   frm.Close()
 End If
Next

適当に直したから間違ってたらごめん。
返信 編集キー/


管理者用

- Child Tree -