none
pasar datos de formulario padre a hijo y viceversa ayuda!!! RRS feed

  • Pregunta

  • Bueno otra vez por aquí ocupando ayuda, de antemano gracias...

    antes que nada e podido pasar variables sin problemas de formulario padre a hijo con modificadores de acceso, con métodos estáticos sin ningún problema, el problema que tengo es a la hora de hacerlo viceversa intento hacer lo mismo pero no puedo por que borro otros datos del form padre es decir se reinicia ala hora de crear la instancia nuevamente desde el form hijo.

    He tratado de no crear la instancia formpadre frm = new formpadre(); frm.show();      pero si no la creo no puedo enviar el dato para el form padre no se si me halla explicado. 

    gracias y disculpen pero no hayo como explicarme mejor...

    domingo, 21 de octubre de 2012 19:31

Respuestas

Todas las respuestas

  • Hola.

    Hace un tiempo escribí un artículo en mi blog:

    http://nicolocodev.wordpress.com/2011/05/17/pasar-datos-de-form-hijo-a-form-padre/

    Espero te sea de utilidad.

    Saludos.


    Nicolás Herrera
    Bogotá - Colombia
    BLOG | @nicolocodev
    "Daría todo lo que sé, por la mitad de lo que ignoro." Rene Descartes

    • Marcado como respuesta Gilberto2708 lunes, 22 de octubre de 2012 15:38
    domingo, 21 de octubre de 2012 19:46
  • hola

    para apsar datos del form padre al hijo usa el constructor del form o propiedades

    [WinForms] Pasaje de información formulario hijo

    ahora para pasar datos del form hijo al padre puede variar pero podrias suar interfaces para desacoplar la comunicacion

     Comunicar formularios de forma desacoplada

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Gilberto2708 lunes, 22 de octubre de 2012 15:38
    domingo, 21 de octubre de 2012 20:11
  • Eso lo puede lograr mediante:

    1. Un contructor

    2. Un metodo

    3. Una propiedad publica

    Tutorial: Pasar datos entre formularios en una aplicación para Windows

    Cómo pasar datos a un formulario Por Enrique Martínez Montejo


    Angel R. Jimenez G.
    Software Development
    Santo Domingo
    Republica Dominicana
    Blog

    domingo, 21 de octubre de 2012 20:14
  • Excelentes respuestas todo solucionado muchísimas gracias a todos por sus respuestas un saludo y un abrazo....
    lunes, 22 de octubre de 2012 15:38
  • Amigo por favor me podrias ayudar con: Cómo pasar datos a un formulario Por Enrique Martínez Montejo lo he implementado desde un form que tiene textbox enlazados pero al regresar no me cambia el textbox padre. Gracias.

    Angeliz Venturi

    martes, 26 de mayo de 2015 0:08
  • /////////////////////////////////////////////

    clase form1

       {
            private Frmprincipal principal;
            private List<Partido> listaPartidos;


            List<Estadio> estadios = new List<Estadio>();
            List<Equipo> equipos = new List<Equipo>();

            public FrmAgenda()
            {
                InitializeComponent();
            }

            public FrmAgenda(Frmprincipal frmPrincipal)
            {
                this.principal= frmPrincipal;
                listaPartidos = principal.ListaPartidos;
                InitializeComponent();
            }

            private void FrmAgenda_Load(object sender, EventArgs e)
            {
                Estadio estadio1 = new Estadio(1, "Casa Blanca");
                Estadio estadio2 = new Estadio(2, "Capwell");

                estadios.Add(estadio1);
                estadios.Add(estadio2);

                Equipo team1 = new Equipo(1, "Liga", estadio1);
                Equipo team2 = new Equipo(2, "Emelec", estadio2);

                equipos.Add(team1);
                equipos.Add(team2);

                cmbEquipo1.Items.Clear();
                foreach (var iter in equipos)
                {
                    cmbEquipo1.Items.Add(iter);
                }

                cmbEquipo2.Items.Clear();
                foreach (var iter in equipos)
                {
                    cmbEquipo2.Items.Add(iter);
                }
            }

            private void btnGuardar_Click(object sender, EventArgs e)
            {
                int idPartido = Convert.ToInt32(Partido_Futbol_Prueba2.Frmprincipal.idPartido);
                Estadio auxEstadio = (Estadio)cbxEstadio.SelectedItem;
                Equipo auxEquipo1 = (Equipo)cmbEquipo1.SelectedItem;
                Equipo auxEquipo2 = (Equipo)cmbEquipo2.SelectedItem;
                Equipo local = new Equipo();
                local.NombreEquipo =  lblEquipoLocal.Text;

                DateTime fechaHora = dtpFechaYHora.Value;

                int cuenta = 0;
                foreach (var iterFecha in listaPartidos)
                {
                    if ((dtpFechaYHora.Value.Date == (iterFecha.Fecha)) || ((dtpFechaYHora.Value.Hour < (iterFecha.Fecha.Hour + 2)) && (dtpFechaYHora.Value.Hour > iterFecha.Fecha.Hour - 2)) || dtpFechaYHora.Value.Hour == iterFecha.Fecha.Hour)

                        cuenta = cuenta + 1;
                }

                if (auxEquipo1 != auxEquipo2)
                {
                       if(cuenta == 0)
                       {
                            Partido partido = new Partido(idPartido++, auxEquipo1, auxEquipo2, local, fechaHora, auxEstadio);
                            listaPartidos.Add(partido);
                            lstPartidos.Items.Clear();
                            foreach (var iter in listaPartidos)
                            {
                              lstPartidos.Items.Add(iter);
                            }
                       }else
                       {
                        MessageBox.Show("Fecha invalida");
                       }

                }
                else
                {
                    MessageBox.Show("Seleccione los equipos correctamente");
                }



            }

            private void rbtEquipo1_CheckedChanged(object sender, EventArgs e)
            {
                Equipo aux = (Equipo)cmbEquipo1.SelectedItem;
                cbxEstadio.Items.Clear();
                foreach (var iter in equipos)
                {
                    if (aux == iter)
                    cbxEstadio.Items.Add(iter.Stadium);
                    lblEquipoLocal.Text = ("Equipo Local: "+ aux.NombreEquipo);
                }


            }

            private void rbtEquipo2_CheckedChanged(object sender, EventArgs e)
            {
                Equipo aux = (Equipo)cmbEquipo2.SelectedItem;
                cbxEstadio.Items.Clear();
                foreach (var iter in equipos)
                {
                    if (aux == iter)
                        cbxEstadio.Items.Add(iter.Stadium);
                    lblEquipoLocal.Text = ("Equipo Local: " + aux.NombreEquipo);
                }
            }

            private void btnRetornar_Click(object sender, EventArgs e)
            {
                this.Close();
            }
        }

    ///////////////////////////////////////////////////////////////////////////////////////////

    Clase frorm 2:

        {
            private List<Partido> listaPartidos;
            Frmprincipal principal;

            public FrmConsulta()
            {
                InitializeComponent();
            }

            public FrmConsulta(Frmprincipal frmPrincipal)
            {
                principal = frmPrincipal;
                listaPartidos = principal.ListaPartidos;
                InitializeComponent();
            }

            private void FrmConsulta_Load(object sender, EventArgs e)
            {
                
            }

            private void btnBuscar_Click(object sender, EventArgs e)
            {
                lstConsultaPartidos.Items.Clear();
                foreach (var iter in listaPartidos)
                {
                    if (iter.Fecha == dtpFecha.Value)
                    {
                        lstConsultaPartidos.Items.Add(iter);
                    }
                }
            }
        }

    //////////////////////////////////////////////////////////////////////////////////////////////////////////

    por si te es de ayuda es un proyecto que realice hace poco

                                                                                                                         
    miércoles, 22 de mayo de 2019 18:47