我的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 loop 会抛出“ 集合被修改;枚举操作可能不会执行“ 例外。因为在每个子窗体上调用Close()调用,f.MdiChidren集合得到修改,这让我感到很惊讶。谁能告诉我为什么它没有抛出那个例外?
但是它会在客户端系统中抛出“Collection was modified;枚举操作可能无法执行”。
答案 0 :(得分:0)
如果您运行的是64位操作系统,则可能与此相关。我在过去遇到过这个问题,我们发现的工作是将项目目标设置为x86(如果可能的话)。
这是一篇帖子,其答案对我所谈论的问题有很好的解释。
VS2008 Debugger does not break on unhandled exception
我应该提到我在2010年仍然可以看到它。