Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/03/2004, 10:27
Avatar de sindestino
sindestino
 
Fecha de Ingreso: noviembre-2003
Ubicación: xxxx xxxx
Mensajes: 270
Antigüedad: 20 años, 6 meses
Puntos: 0
el tema del manejo de los winforms y la diferencia con VB6 debería estar en las FAQ de éste foro (cuando las haya) ya que es muy preguntado, la cosa es así:
los formularios hay que tratarlos como a variables, si declarás una variable en un procedimiento, cuando éste termina la variable se destruye y ya no se puede acceder a ella. Con los forms pasa lo mismo, por más que el formulario se vea en la pantalla, la instancia se pierde y no podés acceder a ninguno de sus métodos ni los controles que contiene.
La solución, como bien leíste, es pasar la INSTANCIA del formulario como referencia ej:

en Form2 defino una variable pública del tipo formulario:

Dim Padre as new Form

-----
en el procedimiento del boton que abre form2 (desde form1):

dim frm as new Form2
frm.Padre = Me
frm.Show

---
asi vas a tener acceso a la INSTANCIA del formulario 1 desde el formulario 2 y vas a poder cerrarlo así: Padre.Close()

espero que sirva, saludos