none
Pasar valor de form_hijo2 a form_hijo1 RRS feed

  • Pregunta

  • Estimados,

    Buenas tardes, otra vez por aca.

    Bueno les comento, tengo un form_padre el cual tiene dos form, (form_hijo1 y form_hijo2).

    El objetivo es pasar valores de (datagrid en form_hijo2) hacia (textbox en form_hijo1)

    Cuando cambio el formulario de inicio a form_hijo1 me funciona, pero cuando ejecuto el form_padre y desde allí llamo a form_hijo1 y desde allí a form_hijo2 para volcar los datos no resulta (no lleva los valores a textbox)

    En form_hijo1 tengo 2 textbox y un button (btasocia)

    Private Sub btasocia_Click(sender As Object, e As EventArgs) Handles btasocia.Click

            form_buscaotcompra.ShowDialog()

        End Sub

    Abro el form_hijo2 y cuando selecciono una fila de datagrid ejecuto esto

    Private Sub datagriddatos_DoubleClick(sender As Object, e As EventArgs) Handles datagriddatos.DoubleClick

            form_hijo1.nombre.Text = datagriddatos.Item(0, datagriddatos.CurrentRow.Index).Value.ToString()

            form_hijo1.apellido.Text = datagriddatos.Item(1, datagriddatos.CurrentRow.Index).Value.ToString()

            Me.Close()

        End Sub

    Reitero, cuando asigno el form_hijo1 como principal funciona bien, pero cuando ejecuto el form_padre y desde allí abro el form_hijo1 y llamo al form_hijo2 no me lleva los datos al form_hijo1

    Espero me puedan ayudar

    Saludos

    miércoles, 23 de enero de 2019 20:31

Respuestas

  • Hola:
    Este ejemplo consta de 3 Forms, FrmInicial, Form1 y Form2
    El FrmInicial llama al Form1, el Form1 llama al Form2 y al hacer click en una celda del DGV, pasa los valofes de esa fila a los TextBox del Form1
    La imagenes son

    El codigo es

    Public Class FrmInicial
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Using loForm As New Form1
                loForm.ShowDialog()
            End Using
        End Sub
    End Class
    Public Class Form1
        Private Sub btAsocia_Click(sender As Object, e As EventArgs) Handles btAsocia.Click
            Using loForm As New Form2
                loForm.Padre = Me
                loForm.ShowDialog()
            End Using
        End Sub
    End Class
    Option Strict On
    Option Explicit On
    Imports System.Data.SqlClient
    Public Class Form2
        Private mFrmPadre As Form1
        Public Property Padre() As Form1
            Get
                Return mFrmPadre
            End Get
            Set(ByVal value As Form1)
                mFrmPadre = value
            End Set
        End Property
        Private Sub Form2_Load(sender As Object, e As EventArgs) Handles Me.Load
            Try
                ' Configuramos una conexión con el origen de datos.
                Using loConexion As New SqlConnection("Data Source=.\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True")
                    ' crear adaptador
                    Dim daCustomers As New SqlDataAdapter("SELECT CustomerID, CompanyName FROM Customers", loConexion)
                    Dim ldtDataTable As New DataTable()
                    ' utilizar el dataadapter para llenar el datatable
                    daCustomers.Fill(ldtDataTable)
                    Me.datagriddatos.DataSource = ldtDataTable
                End Using
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub
        Private Sub datagriddatos_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles datagriddatos.CellClick
            If e.RowIndex = -1 Then
                Return
            End If
            Dim loFila As DataGridViewRow = Me.datagriddatos.CurrentRow()
            mFrmPadre.TextBox1.Text = loFila.Cells("CustomerID").Value.ToString
            mFrmPadre.TextBox2.Text = loFila.Cells("CompanyName").Value.ToString
            Me.Close()
        End Sub
    End Class

    Un saludo desde Bilbo
    Carlos

    • Propuesto como respuesta Javi Fernández F miércoles, 23 de enero de 2019 23:41
    • Marcado como respuesta Error_007 jueves, 24 de enero de 2019 16:15
    miércoles, 23 de enero de 2019 22:57

Todas las respuestas

  • Hola 

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te comento que estaremos realizando una revisión a profundidad acerca del inconveniente que se te está presentando.

    Proporcionaremos una respuesta lo más pronto posible.

    Gracias por usar los foros de MSDN.

    Pedro Alfaro
     ____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft. 

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    miércoles, 23 de enero de 2019 22:17
    Moderador
  • Hola:
    Este ejemplo consta de 3 Forms, FrmInicial, Form1 y Form2
    El FrmInicial llama al Form1, el Form1 llama al Form2 y al hacer click en una celda del DGV, pasa los valofes de esa fila a los TextBox del Form1
    La imagenes son

    El codigo es

    Public Class FrmInicial
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Using loForm As New Form1
                loForm.ShowDialog()
            End Using
        End Sub
    End Class
    Public Class Form1
        Private Sub btAsocia_Click(sender As Object, e As EventArgs) Handles btAsocia.Click
            Using loForm As New Form2
                loForm.Padre = Me
                loForm.ShowDialog()
            End Using
        End Sub
    End Class
    Option Strict On
    Option Explicit On
    Imports System.Data.SqlClient
    Public Class Form2
        Private mFrmPadre As Form1
        Public Property Padre() As Form1
            Get
                Return mFrmPadre
            End Get
            Set(ByVal value As Form1)
                mFrmPadre = value
            End Set
        End Property
        Private Sub Form2_Load(sender As Object, e As EventArgs) Handles Me.Load
            Try
                ' Configuramos una conexión con el origen de datos.
                Using loConexion As New SqlConnection("Data Source=.\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True")
                    ' crear adaptador
                    Dim daCustomers As New SqlDataAdapter("SELECT CustomerID, CompanyName FROM Customers", loConexion)
                    Dim ldtDataTable As New DataTable()
                    ' utilizar el dataadapter para llenar el datatable
                    daCustomers.Fill(ldtDataTable)
                    Me.datagriddatos.DataSource = ldtDataTable
                End Using
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub
        Private Sub datagriddatos_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles datagriddatos.CellClick
            If e.RowIndex = -1 Then
                Return
            End If
            Dim loFila As DataGridViewRow = Me.datagriddatos.CurrentRow()
            mFrmPadre.TextBox1.Text = loFila.Cells("CustomerID").Value.ToString
            mFrmPadre.TextBox2.Text = loFila.Cells("CompanyName").Value.ToString
            Me.Close()
        End Sub
    End Class

    Un saludo desde Bilbo
    Carlos

    • Propuesto como respuesta Javi Fernández F miércoles, 23 de enero de 2019 23:41
    • Marcado como respuesta Error_007 jueves, 24 de enero de 2019 16:15
    miércoles, 23 de enero de 2019 22:57
  • Gracias, J. Carlos Herrero

    Me funciono excelente, modifique algunas cosas pero excelente.

    Saludos!

    jueves, 24 de enero de 2019 16:15