Prevent duplicate MDI children forms

c#, children, mdi

Solution

You can interate over the OpenForms collection to check if there is already a form of the given type:

foreach (Form form in Application.OpenForms)
{
    if (form.GetType() == typeof(MyFormType))
    {
        form.Activate();
        return;
    }
}

Form newForm = new MyFormType();
newForm.MdiParent = this;
newForm.Show();

Problem

Is there a way to prevent the opening of a certain form within an MDI container if that said form is already opened?

Original source