Pasar información entre Forms

Geri
22 de Enero del 2004
Hola! A ver. Estoy haciendo un programa en el que tengo que pasar información entre diferentes formularios. El problema es que en un momento, des de un formulario cualquiera abro un nuevo formulario y necesito información que se encuentra en un TextBox del formulario que lo ha abierto (no se si se entiende la situación). Y no sé como referenciarme a éste formulario, porque no siempre es el mismo.
No sé. Si alguien me ha entendido y sabe como ayudarme, agradecería un empujoncito.
Gracias

naveguito
22 de Enero del 2004
Espero que te entendiera tienes los 2 formularios abiertos,¿no?.Si es asi,entonces,cuando quieres hacer referencia a otro formulario has de hacer esto:

nombre del formulario.y se abre el cuadro de propiedades y ahi escoges lo que quieras un cierto textbox,vamos lo que hay ese formulario.Un ejemplo,yo paso la informacion de un formulario a otro de este modo:
FrmLaser.Txtfoto.Text = Ruta + Lista_fotos.FileName

La informacion va del formulario en el que estoy al otro en este caso frmlaser.

Espero que te sirva

Geri
22 de Enero del 2004
El problema es que el formulario que lo llama, no siempre es el mismo. Entonces no sé su nombre. Tendría que haber alguna forma de saber qué formulario lo ha abierto. Asi podria saber su nombre.
Sé que estoy intentando hacer algo raro, pero seria muy bueno poder hacerlo.
Gracias

naveguito
22 de Enero del 2004
Bueno a mi lo que se ne ocurre es lo siguiente:

If nombredelformulario1.visible=true then
nombredelformulario1.text1.text=a lo que sea
else
asi sucesivamente...

Puede que haber otra forma,pero esta seguro que funciona.Te pongo un ejemplo:

If Frmencoder.Visible = True Then
Frmencoder.Imgfoto.Picture = LoadPicture(Ruta + Lista_fotos.FileName)
Frmencoder.Txtfoto.Text = Ruta + Lista_fotos.FileName
Frmencoder.Cmdbuscar.Enabled = True
Else
FrmLaser.Imgfoto.Picture = LoadPicture(Ruta + Lista_fotos.FileName)
FrmLaser.Txtfoto.Text = Ruta + Lista_fotos.FileName
FrmLaser.Cmdbuscar.Enabled = True
End If

El formulario fotos lo abro desde 2 formularios distintos y para reconocer hago esto,a mi me funciona

ojeador
22 de Enero del 2004
naveguito, que ocurre si hay varios formularios visibles a la vez? cual de ellos es el "padre" ?

exalem
22 de Enero del 2004
Hola:
Lo que se me ocurre es que cuando invocas al formulario2 desde el formulario 1 tenes que hacer lo siguiente:

del lado del formulario que llama al formulario2 le pasas por parámetro lo que quieras pasar
form2.iniciar txt1.text



del lado del formulario2:
public sub iniciar(valorRecivido as String)

me.show

end sub


Geri
22 de Enero del 2004
Bueno. Supongo que es lo que haré. Es la mejor solución, porque sólo hay 3 o 4 formularios que lo pueden llamar. Bueno, muchas gracias!!

Baltasar
22 de Enero del 2004
Hay una solución más "lógica":
en el momento de llamar al form2, asígnale una propiedad que identifique al formulario que está realizando la llamada:

Private Sub Command1_Click()
Form2.Tag = "FORM1"
Form2.Show
End Sub

a partir de ese momento, la propiedad TAG del form2 lleva guardado el nombre del formulario que ha realizado la llamada.

(dentro del form2):
caption=me.tag

Yo suelo usar ese sistema, pero con propiedades nuevas (Property GET, LET y SET) pero es más complicado de usar.

Saludos