Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: TheGhost(Z) en 11 Enero 2011, 14:02 pm



Título: Saber si un Formulario esta cargado
Publicado por: TheGhost(Z) en 11 Enero 2011, 14:02 pm
Hola, alguien sabe como puedo saber si un formulario esta cargado..

Tengo un ListView con un listado de Clientes.

Código
  1. Dim myForm As New frmCliente
  2. With myForm
  3.     .Show()
  4. End With

Lo que deseo saber es cargar un formulario por cliente. Es decir, si el cliente1 ya esta cargado en el FrmCliente. pues no dejar cargar otras ves.


En VB.60 se podía hacer con la coleccion Forms, pero en VB.Net no hay.
Alguna idea....


Nota: los formularios cliente no estan en un MDI
Saludos,



Título: Re: Saber si un Formulario esta cargado
Publicado por: [D4N93R] en 11 Enero 2011, 15:55 pm
Código
  1. List(Of Form) m_myFormLists = new List(Of Form)

Con eso tienes la lista de forms :)


Título: Re: Saber si un Formulario esta cargado
Publicado por: TheGhost(Z) en 18 Enero 2011, 21:06 pm
Después de una semana googleando finalmente los he resuelto. Para lo que necesiten...

Código:
            Dim IsFormLoaded As Boolean = False
            Dim myFrm As Form
            For Each myFrm In Me.MdiChildren
                If myFrm.Name = "frmBuscado" Then
                    If myFrm.WindowState = FormWindowState.Minimized Then
                        myFrm.WindowState = FormWindowState.Normal
                    Else
                        myFrm.BringToFront()
                    End If
                    IsFormLoaded = True
                    Exit For
                End If
            Next
            myFrm = Nothing

            If IsFormLoaded = False Then
                Dim myFrmBuscado As New frmBuscado
                With myFrmBuscado
                    .MdiParent = Me
                    .Show()
                End With
                myFrmBuscado = Nothing
            End If

Si desean buscar en todos los formularios reemplacen:

Código:
Me.MdiChildren
por
Código:
Application.OpenForms

Saludos,