Actualizar DataGrid de un Padre al cerrar un Form Hijo

Me depare con esta problemática en c#. Tenia un formulario que tenia un datagridview que mostraba datos, y si uno quería crear o modificar ciertos datos de este datagridview debería de entrar en otro formulario hijo , para actualizar estos datos. Pero al cerrar este formulario Hijo, no actualiza el formulario Padre con los nuevos datos, es decir no actualiza el datagridview. Para realizar esto lo que tuve que hacer es colocar un handler en el formulario Padre para saber cuando se cierra el formulario Hijo. Sabiendo esto puedo lanzar nuevamente mi proceso de actualizar el DG.

Form2 form2 = new Form2();

 //add handler to catch when child form is closed    
 form2.FormClosed += new FormClosedEventHandler(form2_FormClosed);
 form2.ShowDialog();

private void form2_FormClosed(object sender, FormClosedEventArgs e)           {              
 //when child form is closed, this code is executed   
// Bind the Grid view       
 PopulateControls();                                  }
Espero que le sirvas.

Saludos
Adalberto Montanía

Comentarios

  1. de verdaaaaaaaaaaadddd te agradezco un bueeennn,, me salvaste mi sistema con esto

    ResponderEliminar
  2. por la puta madre que solución mas fantástica... gracias hermano

    ResponderEliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  4. Gracias la solucion que yo tenia solo me dejaba hacerlo con showDialog() y esta me deja hacerlo con ShowDialog() y Show(), Gracias por el codigo hermano.

    ResponderEliminar
  5. Muchisimas gracias hermano, me queme la cabeza toda la semana y esto es lo mejor que eh visto. Un millon de gracias +10

    ResponderEliminar
  6. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  7. Mil gracias me salvaste. en respuesta a lo que dice R de Jesus Galvez.

    Si se queire usar el Show(), el form2.FormClosed hay que ponerlo despues del show().
    Muchas gracias y saludos.

    ResponderEliminar
  8. Excelente Gracias tenia ese problema y lo resolvi. gracias. Cabe la pena destacar que

    private void form2_FormClosed(object sender, FormClosedEventArgs e) {
    //when child form is closed, this code is executed
    // Bind the Grid view
    PopulateControls(); }

    es el evento formClosed del segundo formulario pero va todo en el primero...

    Y a mi al principio no me funciono por que el segundo formulario debe estar this.Close(); y yo lo tenia This.Hide();

    Gracias :)

    ResponderEliminar
    Respuestas
    1. hola de casualidad sabes porque me sale error en el "PopulateControls();"

      Eliminar
  9. Gracias, Excelente,
    sabia que si se podia pero no sabia como, soy nuevo.
    ahora no cambiare mi forma de programar.
    primero muestro listados y elijo que quiero modificar, un 100

    ResponderEliminar
  10. Gracias, Excelente,
    sabia que si se podia pero no sabia como, soy nuevo.
    ahora no cambiare mi forma de programar.
    primero muestro listados y elijo que quiero modificar, un 100

    ResponderEliminar
  11. Estuvo genial tu código amigo, neta que me has hecho un parote
    Funciona de una manera simple, sencilla y excelente

    ResponderEliminar
  12. Me marca error en PopulateControls();
    alguien sabe porque?

    ResponderEliminar
    Respuestas
    1. no se si aun te interese pero veo que nadie respondio asi que ...PopulateControls(); es el método donde esta la instrucción de recargar de nuevo los datos en el datagridview. es decir ; que en lugar de ese metodo usa el metodo que tu utilizas para refrescar tus datos en tu propio datagrid.

      Eliminar
    2. no se si aun te interese pero veo que nadie respondio asi que ...PopulateControls(); es el método donde esta la instrucción de recargar de nuevo los datos en el datagridview. es decir ; que en lugar de ese metodo usa el metodo que tu utilizas para refrescar tus datos en tu propio datagrid.

      Eliminar
    3. Disculpen soy nuevo en la programacion y me queda la duda de donde colocar esta parte codigo dentro del formulario. Form2 form2 = new Form2();

      //add handler to catch when child form is closed
      form2.FormClosed += new FormClosedEventHandler(form2_FormClosed);
      form2.ShowDialog();

      Eliminar

Publicar un comentario