Ir al contenido principal

Como saber si un formulario esta abierto en VB.Net

Me vi en la necesidad de saber si un form esta abierto, asi que cree esta funcion para ello.
Funcion
'Devuelve un valor booleano que indica si el form esta abierto
    Public Function EstaAbierto(ByVal Myform As Form)
        Dim objForm As Form
        Dim blnAbierto As Boolean = False
        blnAbierto = False
        For Each objForm In My.Application.OpenForms
            If (Trim(objForm.Name) = Trim(Myform.Name)) Then
                blnAbierto = True
            End If
        Next
        Return blnAbierto
    End Function
Implementacion
'frmNuevaGuiaAerea es el nombre del form
If EstaAbierto(frmNuevaGuiaAerea) Then
            txtGuiaAerea.Enabled = False
Else
            txtGuiaAerea.Enabled = True
End If

En la condicion hago uso de la funcion que EstaAbierto, si duevuelve un valor true entonces se deshabilitara el control txtGuiaAerea, sino se activara. 

Este codigo es equivalente al anterior:
txtGuiaAerea.Enabled =Not EstaAbierto(frmNuevaGuiaAerea)

E e e eso es todo amigos.
Saludos!!

Comentarios

  1. Muy buen código me sirvió gracias por compartirlo.

    ResponderEliminar
  2. Por nada, que bueno que les sirvió :D.

    ResponderEliminar
  3. BUENAS MUY INTERESANTE PERO ME PODRIAS AYUDAR MIRA TE EXPLICO TENGO UNA APLIACAION QUE LO VAN ABRIR VARIAS PERSONAS A LA VEZ Y QUIERO SABER SI UN FORMULARIO DETERMINADO ESTA ABIERTO PARA NO PERMITIRLO ABRIR MAS DE UNA VEZ PERO SOLAMENTE A ALGUNOS FORMULARIOS .POR EJEMPLO SI DOS PERSONAS ABREN EL MISMO FORMULARIO CANCELACION DE FACTURAS Y LOS DOS COMIENZAN A CANCELAR SUS FACTURAS Y POR MALA SUERTE COMIENZAN A CANCELAR AL MISMO CLIENTE LOS SALDO VAN A VARIAR POR FAVOR AYUDAME GRACIAS

    ResponderEliminar
  4. Veras, para controlar eso, puedes hacerlo, por medio de la base de datos, generalmente para estos casos puedes usar una columna que te controle el número de actualizaciones que haces a cada registro, cuando abras la factura a modificar tomas el numero verificador, y guardas el numero verificador, si el numero verificador es distinto al numero verificador cuando abriste la factura, entonces no permite guardar.

    ResponderEliminar
  5. Gracias esta si me funco le puse para que me lo enfoque...

    ResponderEliminar
  6. Muchas gracias por compartir tu conocimiento
    me sirvió a la perfección

    ResponderEliminar
  7. Una duda....tengo un form que es un teclado y lo mando llamar desde un principal,pero al realizar la llamada al teclado necesito saber si ya estaba abierto, la llamada a tu funcion la uso en el form principal, pero cuando pongo el nombre del form que es teclado por ejemplo:
    If EstaAbierto(teclado) Then.... me marca error que teclado no ha sido declarado, gracias por tu ayuda

    ResponderEliminar
  8. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  9. Excelente aporte, Muchas gracias!!

    ResponderEliminar
  10. Muy buen post, solo una cosita, cuando declaras una variable iniciada, no es necesario volver a darle valor, puede que no afecte en mucho pero ensucia el código y lo hace mas largo innecesariamente.

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Aestan Tray Menu ha dejado de funcionar

Este es uno de los errores mas comunes al momento de instalar wamp server en windows 7 el error es producido porque se necesita tener instalado .net framework 4 Procedimiento: -Desinstalar Wamp server -Asegurarse de solo tener instalada la version mas actualizada de Visual C++ 2010 SP1 Redistributable Package x86 ou x64  -Descargar .Net Framework  

Como usar el API de Google Translate para Traducir Texto en .net

Primero necesitamos descargar la librería esto lo podemos hacer en el siguiente enlace: http://code.google.com/p/google-api-for-dotnet/ Para utilizar la librería en .net Hacemos clic en el menú proyecto, seleccionamos  agregar referencia Seleccionamos la pestaña Browse con esto, la librería o Espacio de nombre será parte de nuestro proyecto y podremos usar de forma nativa las funciones de la librería. El Siguiente Condigo Traduce el contenido de un textBox de ingles a Español y lo muestra en otro textbox.