viernes, 11 de enero de 2013

Comunicar un Form con otro Form

Este es un ejemplo de como puedes pasar argumentos y comunicar desde un Form a otro, bueno comencemos.

Primero explico lo que se va realizar en el ejemplo, se va a crear un Form llamado Padre este es un formulario normal que para entrar al sistema en mi ejemplo tienes que logearte, esto implica abrir otra ventana para el logeo, que sera el segundo Form llamado LogeoHijo, que se podria hacer en la misma ventana pero para efectos de este ejemplo lo hare asi.

Primero crearemos nuestro proyecto, yo lo llamare Padre


Le pondre un label y un boton para que se vea bien!,



Bien ya tenemos el Form Padre que tiene 2 labes en las flechitas que cacharan el texto que les envie el otro Form y el boton que llamara al otro Form, ahora creamos el otro Form que yo lo llamare como dije anteriormente LogeoHijo:


Bien ya lo tenemos aqui:


Y medio la decore pero seguimos, ahora ya tenemos los Form el Padre y el LogeoHijo, pero como los vamos a comunicar?, para eso tenemos que crear una interfaz que nos va a ayudar con la comunicacion yo la llame IComunica:


Bien, entonces nos refresamos al primer Form y damos doble click sobre el boton para administrar su evento:


Bien este boton es el que va a mandar a llamar al otro Form y lo crearemos asi:


Tambien debemos de crear un metodo aqui en este Form para setear o establecer los valores a los label's:



ya que este metodo es el que va a establecer los valores el los labes, pero para que este se pueda mandar a llamar tenemos que agregar la interfaz IComunica al Form Padre:


Ya esta, a continuacion agregamos el metodo a la interfaz, en mi caso el metodo se llama SetLabes:


si no le van entendiendo no se preocupen explico con calma ya que tengamos todos los elementos creados, bien, ya tenemos la interfaz que va a conectar al Form Padre, ahora procedemos a comunicar el Form que en mi caso se llama LogeoHijo, de esta forma:



el this.owner, se utiliza para decir que este Form es hijo del otro y que pertenece a el Form padre, bien si ejecutamos esto vemos como al cerrar el segundo Form el hijo, ya estan los datos en los labels del Form padre:


vemos que se ha completado exitosamente, en mi caso se queda abierto el segundo Form, pero ya saben que le pueden agregar un this.close(); para que al final del metodo cuando ya envie los datos se cierre, pero como dije ahi es de cada quien, espero que les sirva y pueden dejar sus quejas jeje o comentarios.

Saludos

2 comentarios: