Abrir formulario en MDI

Código genérico para incluir en un formulario MDI que permite abrir los formularios secundarios.


private void abrirFormulario(Form formularioParaAbrir)
{
    int i = 0;
    bool encontrado = false;
            
    object objFrm = null;
        
    try
    {
        if (this.ActiveMdiChild == null)
            objFrm = Activator.CreateInstance(formularioParaAbrir.GetType());
        else
        {
            while (i < this.MdiChildren.Length && !encontrado)
            {
                if (this.MdiChildren[i].GetType().Equals(formularioParaAbrir.GetType()))
                {
                    this.MdiChildren[i].BringToFront();
                    encontrado = true;
                }

                i += 1;
            }

            if (!encontrado)
                objFrm = Activator.CreateInstance(formularioParaAbrir.GetType());
        }

        if (!encontrado)
        {
            ((Form)objFrm).MdiParent = this;
            ((Form)objFrm).Show();
        }


    }
    catch (Exception)
    {
        MessageBox.Show("Error al cargar el formulario", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
}

//Código para abrir el formulario.
abrirFormulario(new NombreFormulario());

//Si el formulario se encuentra en otra carpeta de la principal del proyecto.
abrirFormulario(new nombreCarpeta.NombreFormulario());