Consultas, desarrollo de programas y petición de presupuestos:

domingo, 28 de agosto de 2011

Usar Variables De Un Form Desde Otro

Usar Variables De Un Form Desde Otro

 Explicación de Soplo, sobre como pasar de variables de un formulario a otro:

Pongamos que al pulsar un botón quieres que se abra otro formulario form2 y allí conocer valores de dos textboxes de form1.

1º opcion
En Form2 creas la siguiente función:
private $txt1 as string, $txt2 as string
public sub _new(txt1 as string, txt2 as string)
$txt1=txt1
$txt2=txt2
end
Ahora en form1 en botón click pones lo siguiente:
private sub boton_click()
Dim F as NEW form2(textbox1, textbox2)
f.show
end
Lo que has hecho es crear una instancia en la que le pasas dos objetos existentes en form1. Esos dos objetos en este caso son dos textboxes, pero podría ser cualquier cosa. Por ejemplo yo suelo crear una única conexión a base de datos y la voy pasando a formularios según me va conviniendo).
También podrías pasarle el formulario entero. Entonces lo harías así
En form2
private $formu as form1
public sub _new(f as form1)
$formu=f
end
Y en form1 en el click del botón
public sub boton_click()
Dim F as new form2(ME)
F.show
end
Y ahora en form2 tendrías una variable conocida en todo el formulario llamada $Formu que contiene todo el formulario Form1.

2ª opción
Puedes crearte propiedades a tu gusto. Pongamos que queremos dos propiedades nombre y cif que están escritas en dos textboxes de form1 y quieres pasarlas a form2.
En form2 pones
private $txt1 as string, $txt2 as string
property nombre as string ‘al hacer esto se crearán dos funciones read y write que pondré mas abajo
property cif as string ‘al hacer esto se crearán dos funciones read y write que pondré mas abajo
Las funciones estarán vacías pero les pongo el código para que funcione
public function Nombre_read()
return $txt1
end
public sub Nombre_write(value as string)
$txt1=value
end
public function cif_read()
return $txt2
end
public function cif_write(value as string)
$txt2=value
end
A partir de ahora en form1 tu puedes hacer utilizar las propiedades que has creado
private sub boton_click
Dim F as NEW form2
f.nombre=textbox1.text
F.cif=textbox2.text
end
Otra cosa que puedes hacer (que es la peor pero funciona) es irte a las propiedades de tu proyecto y marcar la casilla los objetos de formulario son públicos. Entonces desde form2 puedes acceder a cualquier control de form1 sin nada de lo anterior.

 

No hay comentarios:

Publicar un comentario