Colección Forms

21/09/2004 - 23:24 por Oscar | Informe spam
Hola a todos,

He leído en la ayuda que la colección Forms de vb6 no tiene equivalente en .net. Bueno, tengo un
grid con una lista de contactos, al hacer doble click sobre uno de ellos se carga un formulario con
los datos de este. La cosa está en que se pueden tener varios formularios con datos de distintos
contactos abiertos a la vez, por lo que si al hacer doble click en la lista, el formulario con los
datos que pertenecen a ese contacto ya está cargado, solo necesito que lo active, no lo cree una
nueva instancia...

Vamos, en vb6 hacía lo siguiente:

Dim MiForm As New ManPub
Dim i As Integer

For i = 0 To Forms.Count - 1
If Forms(i).Tag = Space(1) & lvwControl.SelectedItem.Text Then
Forms(i).ZOrder (0)
Forms(i).WindowState = 0
Exit Sub
End If
Next i

MiForm.Caption = Space(1) & lvwControl.SelectedItem.Text
MiForm.Show
MiForm.ZOrder (0)
MiForm.WindowState = 0

He leído unos cuantos post acerca de el singleton, y otro parecido sobre crear una propiedad pública
compartida, pero no me vale, ya que de esas maneras me activaría el formulario siempre que estuviera
cargado, independientemente de que correspondiera al que tiene los datos del contacto que busco.

Gracias de antemano por cualquier sugerencia,
Saludos,
 

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
22/09/2004 - 06:58 | Informe spam
Simplemente crea tu propia coleccion (puedes usar Hashtable). Antes de crear
la instancia verifica si ya esta en esa coleccion y si no esta creas la
nueva instancia y la agregas. Y no olvides de quitarla de la coleccion a
cerrar el formulario.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo

Preguntas similares