I want it so when my button is clicked, I exit my application. I tried a simple for loop:
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
But after closing all forms besides the form with this button on it, I get this error:
An unhandled exception of type 'System.InvalidOperationException' occurred in mscorlib.dll Additional information: Collection was modified; enumeration operation may not execute.
I believe this is because I close the form executing the code before the loop can go to the next form. If this is the case, how can I make it so my loop finishes once the last form is closed? Can I even do that?
Close all but current form:
My.Application.OpenForms.Cast(Of Form)() _
.Except({Me}) _
.ToList() _
.ForEach(Sub(form) form.Close())
Close application normally:
Application.Exit()
Force application to exit:
Environment.Exit(1)