Foros del Web » Programación para mayores de 30 ;) » .NET »

Saber si un form esta abierto

Estas en el tema de Saber si un form esta abierto en el foro de .NET en Foros del Web. Saludos: Estoy desarrollando un aplicacion en .net, y nesesito saber como hago para saber si un form esta abierto para que si no esta abierto ...
  #1 (permalink)  
Antiguo 07/05/2007, 13:13
 
Fecha de Ingreso: septiembre-2006
Mensajes: 90
Antigüedad: 17 años, 7 meses
Puntos: 0
Saber si un form esta abierto

Saludos:

Estoy desarrollando un aplicacion en .net, y nesesito saber como hago para saber si un form esta abierto para que si no esta abierto entonces llamarlo y si esta abierto no hacer nada

algo asi:

dim frm as form1
if frm esta abierto =true then
frm.show
else
'nada
endif


Gracias de antemano
  #2 (permalink)  
Antiguo 07/05/2007, 13:20
 
Fecha de Ingreso: abril-2007
Mensajes: 163
Antigüedad: 17 años
Puntos: 2
Re: Saber si un form esta abierto

Hola,

yo eso, de toda la vida, lo he hecho con variables globales. Aunque si alguien tiene una forma mejor, bienvenida sea

dim frmXAbierto as boolean

abrir()
{
if(frmXAbierto) exit sub
frmXAbierto=True
addhandler..... ****
frmX.show()
}

***delegas el evento cerrar del frmX en el form Padre , y: frmXAbierto=False
(Disculpa no tengo sintaxis a mano, ni se de memoria

CerrarX()
{
frmXAbierto=False
}
  #3 (permalink)  
Antiguo 08/05/2007, 04:16
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
Re: Saber si un form esta abierto

yo lo hago siguiendo el patrón SingletonPattern, (en VB.NET 2003)

En el form hijo:

Cita:
#Region " Windows Form Designer generated code "

'singleton patern
Private Shared fHijo As frmHijo= Nothing

Public Shared Function Instance() As frmHijo
If fHijo Is Nothing Then
fHijo= New frmHijo
End If
fHijo.Focus()
Return fHijo
End Function 'Instance

Public Sub New()
MyBase.New()

'This call is required by the Windows Form Designer.
InitializeComponent()

'Add any initialization after the InitializeComponent() call

End Sub

'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
fHijo= Nothing
End Sub

.
.
.
En el form Padre:
Cita:
Private Sub mnMostrarForm_ItemClick(ByVal sender As System.Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs) Handles mnMostrarForm.ItemClick
Dim f As Form = frmHijo.Instance()
f.MdiParent = Me
f.Show()
f= Nothing
End Sub
Aunque también te vale si la app no es MDI. Eludes lo de mdiparent y ya está.

saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:49.