¿Cómo detectar si un formulario ya ha sido abierto en Windows Form? C# .Net

Te mostrare como saber si un formulario de nuestra aplicación ya ha sido abierto.

Algunas veces tenemos la necesidad de que un formulario no sea abierto más de una vez, ya sea por requerimiento o por ser una modulo que deseamos que no se abra miles de veces.

La siguiente función recibe una cadena con el nombre de tu formulario como tal, si tu formulario se llama FrmUsuario entonces recibirá “FrmUsuario”:


public class FormUtils{

//función
        public static bool detectarFormularioAbierto(string formulario)
        {
            bool abierto = false;

            if (Application.OpenForms[formulario] != null)
            {
                abierto = true;
            }
            return abierto;
        }
}

Y seria utilizada de la siguiente manera:


bool estaAbierto=FormUtils.detectarFormularioAbierto("FrmUsuario");