我想要它,所以当点击我的按钮时,我退出我的应用程序。我尝试了一个简单的for循环:
Private Sub CloseAllToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles CloseAllToolStripMenuItem.Click
For Each Form In My.Application.OpenForms
Form.Close()
Next
End Sub
但在关闭表格后面的所有表格时,我收到此错误:
mscorlib.dll中出现未处理的“System.InvalidOperationException”类型异常 附加信息:收集已修改;枚举操作可能无法执行。
我相信这是因为我在循环可以转到下一个表单之前关闭执行代码的表单。如果是这种情况,我怎么能做到这一点,一旦最后一个表格关闭,我的循环结束?我甚至可以这样做吗?
答案 0 :(得分:5)
关闭除当前表单以外的所有内容:
My.Application.OpenForms.Cast(Of Form)() _
.Except({Me}) _
.ToList() _
.ForEach(Sub(form) form.Close())
正常关闭应用程序:
Application.Exit()
强制申请退出:
Environment.Exit(1)
答案 1 :(得分:0)
这很简单,只需添加验证:
For Each Form In My.Application.OpenForms
If Form.name <> Me.Name Then
Form.Close()
End If
Next
答案 2 :(得分:0)
此操作将关闭除“ exceptthisform”或主表单以外的所有表单
def mid(ml):
return ml[len(ml)//2] if len(ml) % 2 else ""