Search code examples
c#mdichildren

Prevent duplicate MDI children forms


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


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();