0

MDI アプリケーションにログアウト メニュー オプションがあります。ログアウト時に、開いているすべてのフォームを閉じたい。現在、これを実現するために次のコード スニペットを使用しています。

For Each f As Form In My.Application.OpenForms
    If f.Name = Me.Name Then
        For Each child As Form In f.MdiChildren
            child.Close()
        Next
    Else
        f.Close()
    End If
Next

For Eachループが「コレクションが変更されました;列挙操作が実行されない可能性があります」例外をスローすると予想していましたが、私のテスト環境では完全に機能しています。子フォームの Close() 呼び出しごとに f.MdiChidren コレクションが変更されるので、とても驚きました。その例外がスローされない理由を誰か教えてもらえますか?

ただし、クライアント システムで「コレクションが変更されました。列挙操作が実行されない可能性があります」がスローされます。

4

1 に答える 1