Acceder a un control del formulario padre desde un hijo

13/06/2005 - 20:54 por Luis Matamoros | Informe spam
Hola a todos, espero me puedan ayudar.

Tengon un formulario padre, desde este cargo varios
formularios hijos, en el form. padre tengo una etiqueta
que me indica que formulario hijo tengo abierto, cuando
cierre el formulario hijo quiero qu la etiqueta quede
limpia. En el evento closing del form hijo tengo lo
siguiente:

Dim f as New frmPadre
f.etiqueta.tex = ""

pero no me funciona, la eiqueta siempre tiene la cadena
que indica que form hijo esta abierto, que puedo hacer_
 

Leer las respuestas

#1 Tristan
13/06/2005 - 22:10 | Informe spam
Antes de responder lo que debes hacer, me gustaría que pienses sobre lo que
estás escribiendo.

Dim f as New frmPadre
f.etiqueta.tex = ""



La primera sentencia crea una instancia nueva de la clase frmPadre. Un
formulario de la misma clase que el padre, pero que no es el padre. De
hecho, ni siquiera es visible, puesto que nunca has hecho f.Show. NO ES la
instancia del padre que se está visualizando.

Por lo tanto, la segunda sentencia no sirve para modificar nada del padre.

Lo que necesitas no es una nueva instancia, sino EXACTAMENTE la instancia
del padre.

Dando por hecho que te refieres a padre MDI, lo que debes hacer es:

Dim f as FrmPadre = me.MdiParent
f.etiqueta.tex = ""

O más correctamente:

Dim f as FrmPadre = DirectCast(me.MdiParent, FrmPadre)
f.etiqueta.tex = ""

Por cierto, la clase Form ya dispone de una propiedad, que te permite saber
desde el padre cual es el hijo MDI activo:

MsgBox(Me.ActiveMdiChild.Name)


Juan Carlos Badiola
MVP - C#

Preguntas similares