Pasar datos y ordenes entre Forms – C#

Buenas hace rato que no me paso por aqui…
Hoy les traigo algo de suma utilidad, pasar datos u ordenes (de ejecutar algo supongamos una funcion) entre FORMS.

Esto se hace definiendo una interfaz y los que saben le llaman
«Comunicar formularios de forma desacoplada»
A mi ese nombre no me dice ni un choto nada de nada, por lo que yo le llamo «pasar datos de un form a otro»

Les voy a dar un ejemplo de como yo utilizo esto y lo he usado muchas veces, Tengo FORM1 (padre) el cual es una carga de datos y supongamos que esa carga de datos incluye un combobox el cual trae desde la base los diferentes RUBROS (no importa de que son nombres), pero le quiero dar a mi cliente la posibilidad de agregar mas RUBROS a medida que su negocio vaya creciendo, para ello coloco un boton de agregar al lado del combobox

rubrosahora una  vez que mi cliente quiere dar de alta en la base un nuevo rubro presiona el «+» button. y se abre otro FORM (hijo) para la carga

AgRubroES IMPORTANTE RECALCAR QUE LA FORMA DE ABRIR ESTE FORM ES PONIENDOLE ENTRE PARENTESIS «THIS» asi le decimos quien es el «owner»:

THIS
ahora una vez agregamos nuestro nuevo Rubro, es decir le damos clic al boton que dice «Agregar Rubro» esto es lo que hace:

btnAgRubro

explico el code rapidamente: hace un insert mediante un datatable «agregarRubro» y le paso sus parametros, luego doy un msgbox de que esta todo OK  y despues viene la parte de la interfaz de la que hablaba, «RecargarCombosAlta» es una funcion mia que esta en el FORM1 (Padre).

Luego en el Form1 padre, esta la funcion:
Funcion
Bueno, ahora creamos una nueva clase y le damos el nombre «IForm» dentro de ella ponemos;:
IFORMy tambien colocamos en el FORM1 (Padre) al principio de todo donde dice
«public partial class NombreDeFormPadre : Form, IForm»

Agregar la linea IForm, para conectarlos…
Listo.

De esta forma, yo no solo agrego un nuevo rubro en la base de datos, sino que al ejecutar la funcion «RecargarCombosAlta» (mediante el iform) estoy actualizando mi combobox en el form padre, por lo que el usuario/cliente apenas dé clic en agregar rubro se le va a cerrar (… me falto agregar this.close() debajo de forminterface.RecargarCombosAlta() … ) su actual form volviendo al combobox ya actualizado con el Rubro que acabo de agregar en el Form2(hijo)
Cualquier cosa me escriben en los comentarios.

Matias Castro.

Acerca de Mati !

Analista de sistemas y emprendedor
Esta entrada fue publicada en C# y etiquetada , , , . Guarda el enlace permanente.

5 respuestas a Pasar datos y ordenes entre Forms – C#

  1. omar dijo:

    Exelente post, me saco de apuros, gracias por el aporte

  2. Gilberto Castro dijo:

    hola excelente tu blog te felicito por tan maravilloso blog y muchas gracias por tu info me a sido de gran ayuda,

    • Mati ! dijo:

      Gracias, me alegro que te haya ayudado. Apenas tenga tiempo postearé una actualizacion para hacer el paso entre forms mucho mas sencillo que el visto en este Post.
      Suscribete a mis feeds para recibir actualizaciones.

Replica a Mati ! Cancelar la respuesta