“Collection was modified; enumeration operation may not execute.” appears to be a common error with foreach loops, but I can’t figure mine out. I have two classes of forms. One is begun on startup, and a button creates new instances of the second form, and displays them. When I close the secondary forms, I get an InvalidOperationException.
FirstForm.cs
public partial class FirstForm : Form
{
SecondForm frmSecond;
...
private void button1_Click(object sender, EventArgs e)
{
frmSecond= new SecondForm ();
frmSecond.Show();
}
}
SecondForm.designer.cs
partial class SecondForm
{
...
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing); // InvalidOperationException thrown here.
}
}
The problem was a
PowerPacks.RectangleShapeobject I had placed on my second form and forgot about (because it wouldn’t render.) I deleted the object, and the form disposed just fine.Testing this further, I found that any control which requires a
PowerPacks.ShapeContainer(LineShape,OvalShape, andRectangleShape,) cause this problem, but otherPowerPacksobjects don’t.I’m not sure why this happens, so if anyone figures out a workaround, I’d appreciate that. But for now I’ll avoid
PowerPacksshapes.