Pasar datos de un Form a otro

08/06/2008 - 16:36 por German | Informe spam
Hola amigos, yo quería saber como pasar datos de un form a otro, pero
sin crear instancias de estos form porque las ventanas ya las tengo
abiertas. Es decier, como hago para tener el foco de una ventana a
través de la otra?? Espero que entiedan mi consulta.. Saludos...
 

Leer las respuestas

#1 Alberto Poblacion
08/06/2008 - 23:27 | Informe spam
"German" wrote in message
news:
Hola amigos, yo quería saber como pasar datos de un form a otro, pero
sin crear instancias de estos form porque las ventanas ya las tengo
abiertas. Es decier, como hago para tener el foco de una ventana a
través de la otra?? Espero que entiedan mi consulta.. Saludos...



Es imposible tener una ventana abierta sin haber creado antes una
instancia. Así que busca en tu código el sitio donde creas la instancia, y
guárdate una referencia a la misma. Por ejemplo, si para abrir una ventana
hiciste esto:

Form1 frm = new Form1();
frm.Show();

pues entonces esa variable "frm" debes dejarla guardada en algún sitio
donde puedas recuperarla cuando quieras pasar datos a esa instancia del
Form1.
Si tienes guardada la variable, entonces es muy fácil pasar datos a ese
Form1, porque basta hacer frm.Miembro=datos;
Obviamente, ese "Miembro" será una propiedad o campo que habrás declarado
dentro de Form1 con la suficiente visibilidad para acceder a él desde fuera
(public o internal).

Como alternativa a lo anterior, si sabes con seguridad que tu programa
solo va a instanciar una única copia de ese formulario, puedes usar
variables estáticas. Las puedes poner dentro de cualquier clase, por
ejemplo, dentro del propio Form1:

public static string UnDato;

Y desde otro form pasarle datos haciendo Form1.UnDato=nuevoValor;

Aunque esto vale para pasar datos, no vale para ejecutar acciones sobre
el Form, por ejemplo para ordenarle que pinte inmediatamente esos datos en
pantalla. Para eso hay que recurrir al primer método (usar la referencia a
la instancia existente).

Preguntas similares