我的 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 集合都会被修改,这让我很惊讶。谁能告诉我为什么它没有抛出那个异常?
但是,它会在客户端系统中抛出“集合已修改;枚举操作可能无法执行”。