Visual Basic.NET - Form hijo no recive datos de otro form

 
Vista:
sin imagen de perfil
Val: 50
Ha disminuido su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Form hijo no recive datos de otro form

Publicado por Agustin (29 intervenciones) el 26/04/2022 02:11:44
Buenas...

Tengo un formulario padre (frmClientes), este a su vez abre dentro del mismo a un formulario hijo (frmAgregaClientes) de la siguiente manera:

1
2
3
4
5
6
7
Private Sub btnAgregaCliente_Click(sender As Object, e As EventArgs) Handles btnAgregaCliente.Click
        PanelAddClient.Visible = True
        Dim fr As New frmAgregaCliente
        fr.TopLevel = False
        fr.Show()
        PanelAddClient.Controls.Add(fr)
    End Sub

esto funciona bien. ahora la cuestion es que antes no los tenìa como formulario padre e hijo, estaban separados. El problema es que este formulario hijo recibe algunos string de un frmLocalidad, que no tiene ninguna relacion con ambos formularios mencionados en primera instancia...

Desde una tabla que tiene el frmLocalidad le mandaba el contenido a unos text box que tengo en frmAgregarClientes de la siguiente forma:

1
2
frmAgregaCliente.txtClienteCiudad.Text = CStr(row.Cells(0).Value)
            frmAgregaCliente.txtClienteCodigoPostal.Text = CStr(row.Cells(2).Value)

el problema es que ahora, estando el frmAgregarClientes dentro de frmClientes no recibe esos valores que mando desde frmLocalidad...

Como hago para enviarlos ??? tengo que editar esas lineas seguramente pero no se como.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Form hijo no recive datos de otro form

Publicado por Phil Rob (1554 intervenciones) el 26/04/2022 17:54:13
Hola Agustin,

Si comprendo bien tienes 3 formularios en cascada : frmClientes llama frmAgregaClientes que llama frmLocalidad.

La situación es :
frmLocalidad debe dar las informaciones para llegar frmAgregaClientes
frmAgregaClientes debe dar las informaciones del cliente agregado a frmClientes.

o la situación es :
frmLocalidad debe dar las informaciones para llegar frmAgregaClientes
frmAgregaClientes escribe el cliente en el DB
En este caso, frmClientes debe actualizar su lectura de la DB.

Veo que utilizas New para instanciar frmAgregaClientes : quiza no necesario porque lo es instanciado por la aplicación. A testar ...

Quizá podré hacer un ejemplo con 3 Forms cuando comprenderé mejor la organización de tus códigos.

...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 50
Ha disminuido su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Form hijo no recive datos de otro form

Publicado por Agustin (29 intervenciones) el 26/04/2022 21:02:57
Hola Philp, gracias por contestar.

Tengo tres formularios, como bien decis, frmClientes llama frmAgregaClientes que llama frmLocalidad (tener en cuenta que frmAgregarClientes se abre dentro de un panel de frmClientes y frmLocalidad se abre en un formulario aparte sin relacion alguna).

la situacion es la sigueinte :
frmLocalidad debe dar las informaciones para llegar frmAgregaClientes
frmAgregaClientes escribe el cliente en el DB

Pero a esto ultimo te agrego que frmAgregaClientes esta dentro de frmClientes, por eso no esta llegando el dato, si lo saco afuera si llega correctamente.

Espero me haya explicado bien.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Form hijo no recive datos de otro form

Publicado por Phil Rob (1554 intervenciones) el 26/04/2022 21:30:43
Muy bien.
Por favor, puedes llamar frmAgregarClientes sin escribir New ?
Miraré mañana (aquí es la noche que comienza).
...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Form hijo no recive datos de otro form

Publicado por Phil Rob (1554 intervenciones) el 27/04/2022 12:33:03
Hola Agustin,

No sé cómo están organizados los datos en frmCliente. Con mi manera de trabajar, los datos están contenidos en un DataTable, en un DataSet.
Si tengo un cliente en mi formulario padre, sus datos están en DataTable “MisClientes” que es unida con las zonas de mostrada. Cuando agrego un cliente en la DB, también lo agrego en el DataTable. De esta manera, mi pantalla siempre es actualizada, sin releer el DB.

He tomado un ejemplo que utilizo solamente para mostar como unir los campos de DB con las zonas de mostrada. Después, he agregado los formularios FAgregarProducto (±igual a tu frmAgregaClientes) y FIntroducirColor (±igual a tu frmLocalidad).
Los clientes están reemplazados por los artículos o productos, y las localidades estan reemplazada por los colores. Pero la estructura es misma que en tu programa.

Mi DB (Access) :
Agustin1

Agustin2

Mis códigos (ver el proyecto completo adjuntado) :

El Form padre : FTest. (a lugar de tu frmClientes).
Debes cambiar la cadena de conexión para ejecutar (ver RutaYNombreDB).
Agustin3

Agustin4

Te propongo de mirar el video y evaluar si esta manera puede te gustar :
https://www.dropbox.com/s/d8td4z390snlpwh/AgustinDB.mp4?dl=0

Adjunto mi proyecto completo para ti lo probar : TestAccesDBSimpleConMostrarYAgregar.zip

Espero que este te ayudará ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar