private void MnuCloseAllUnchanged_Click(object sender, EventArgs e) { List <Form> forms = new List <Form>(); foreach (var badForm in this.MdiChildren) { FrmTableEditor form = (FrmTableEditor)badForm; if (form.undoManager.IsModified()) { continue; } forms.Add(form); } foreach (var form in forms) { form.Close(); if (!form.IsDisposed) { return; } } }