none
Enviar datos de un datagridview de un form a otros textbox de otro form con el evento CellDoubleClick en vb.net 2010 RRS feed

  • Pregunta

  • Hola a todos me podrian ayudar con este codigo es para pasar datos de un datagridview de un form1 para textbox de un form 2, pero no me muestra ningun error pero tampoco me carga los datos a los textbox el codigo es el siguinte.

    Private Sub DataGridproductos_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridproductos.CellDoubleClick
            Dim frm As New Frventas
            Try
                frm.TxtCodigo.Text = Me.DataGridproductos.CurrentRow.Cells(0).Value
                frm.TxtProducto.Text = DataGridproductos.CurrentRow.Cells(1).Value
                frm.TxtPrecio.Text = DataGridproductos.CurrentRow.Cells(2).Value
                frm.TxtExistencia.Text = DataGridproductos.CurrentRow.Cells(3).Value
            Catch ex As Exception
                MsgBox(ex.Message, MsgBoxStyle.Information, "Informacion")
            End Try

        End Sub

    Muchas gracias por la ayuda que me puedan brindar.

    sábado, 6 de abril de 2013 1:14

Respuestas

  • Hola:

     Podrias crearte propiedades publicas en el segundo control para acceder a estos desde el llemado, en el form dos haces algo como esto:

    Public Class Form2
        Public Property ValorUno As String
        Public Property Valordos As Boolean
        Public Property ValorTres As String
    
        Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            TextBox1.Text = ValorUno
            TextBox2.Text = Valordos.ToString
            TextBox3.Text = ValorTres
        End Sub
    End Class

     Para llenar estas propiedades desde el Form1 con los valores de la fila seleccionada actualmente en el control DataGridView, harias algo como esto:

        Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
    
            Dim row As DataGridViewRow
            row = DataGridView1.Rows(e.RowIndex)
    
            Using Frm2 As New Form2
    
                Frm2.ValorUno = CStr(row.Cells(0).Value)
                Frm2.Valordos = CBool(row.Cells(1).Value)
                Frm2.ValorTres = CStr(row.Cells(2).Value)
    
                Frm2.ShowDialog()
            End Using
        End Sub
     El código que te proporciono es solo de ejemplo, pero si lo pruebas veraz que hace lo que necesitas, adaptarlo a tus necesidades sera tarea tuya.

    Saludos desde Monterrey, Nuevo León, México!!!


    Hola que pena depronto no me explique bien, trata de lo siguiente los dos form van a estar abiertos y lo que quiero es que cuando le de click en el datagridview del form1 este me pase los valores a los textbox del form2 muchas gracias
    • Marcado como respuesta daro2008 martes, 14 de mayo de 2013 1:34
    sábado, 6 de abril de 2013 4:29

Todas las respuestas

  • Hola:

     Podrias crearte propiedades publicas en el segundo control para acceder a estos desde el llemado, en el form dos haces algo como esto:

    Public Class Form2
        Public Property ValorUno As String
        Public Property Valordos As Boolean
        Public Property ValorTres As String
    
        Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            TextBox1.Text = ValorUno
            TextBox2.Text = Valordos.ToString
            TextBox3.Text = ValorTres
        End Sub
    End Class

     Para llenar estas propiedades desde el Form1 con los valores de la fila seleccionada actualmente en el control DataGridView, harias algo como esto:

        Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
    
            Dim row As DataGridViewRow
            row = DataGridView1.Rows(e.RowIndex)
    
            Using Frm2 As New Form2
    
                Frm2.ValorUno = CStr(row.Cells(0).Value)
                Frm2.Valordos = CBool(row.Cells(1).Value)
                Frm2.ValorTres = CStr(row.Cells(2).Value)
    
                Frm2.ShowDialog()
            End Using
        End Sub
     El código que te proporciono es solo de ejemplo, pero si lo pruebas veraz que hace lo que necesitas, adaptarlo a tus necesidades sera tarea tuya.

    Saludos desde Monterrey, Nuevo León, México!!!

    sábado, 6 de abril de 2013 1:42
  • Hola:

     Podrias crearte propiedades publicas en el segundo control para acceder a estos desde el llemado, en el form dos haces algo como esto:

    Public Class Form2
        Public Property ValorUno As String
        Public Property Valordos As Boolean
        Public Property ValorTres As String
    
        Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            TextBox1.Text = ValorUno
            TextBox2.Text = Valordos.ToString
            TextBox3.Text = ValorTres
        End Sub
    End Class

     Para llenar estas propiedades desde el Form1 con los valores de la fila seleccionada actualmente en el control DataGridView, harias algo como esto:

        Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
    
            Dim row As DataGridViewRow
            row = DataGridView1.Rows(e.RowIndex)
    
            Using Frm2 As New Form2
    
                Frm2.ValorUno = CStr(row.Cells(0).Value)
                Frm2.Valordos = CBool(row.Cells(1).Value)
                Frm2.ValorTres = CStr(row.Cells(2).Value)
    
                Frm2.ShowDialog()
            End Using
        End Sub
     El código que te proporciono es solo de ejemplo, pero si lo pruebas veraz que hace lo que necesitas, adaptarlo a tus necesidades sera tarea tuya.

    Saludos desde Monterrey, Nuevo León, México!!!


    Hola que pena depronto no me explique bien, trata de lo siguiente los dos form van a estar abiertos y lo que quiero es que cuando le de click en el datagridview del form1 este me pase los valores a los textbox del form2 muchas gracias
    • Marcado como respuesta daro2008 martes, 14 de mayo de 2013 1:34
    sábado, 6 de abril de 2013 4:29
  • hola

    la tecnica para apsar informacion entre formularios es la misma, pero algo que no has aclarado es el el tipo de relacion entre los formularios

    imagino que el form1 es padre del form2, no ? si es asi aplcia lo que comento Luis, solo que con algunos cambios

    quizas en lugar de propiedades usarias algun metodo

    Public Class Form2

    Public sub AsignarDatos(string param1, string param2)

    textbox1.Text = param1

    textbox2.Text = param2

    end Sub

    End Class

    entonces desde el otro forma si tines la instancia del form2 podrias invocar el metodo y pasar los datos

    Public Class Form1
    
       Private _form2 As Form2
    
       Private Sub DataGridView1_CellClick(...)
    
            Dim row As DataGridViewRow  = DataGridView1.Rows(e.RowIndex)
    
             _form2.AsignarDatos(CStr(row.Cell("nombrecol1").Value), CStr(row.Cell("nombrecol2").Value))
    
        End Sub
    
    End class


    pero recuerda que debes tener la instancia de ese formulario

    alli use una variable publica a nivel del form1, pero podrias usar esta otra tecnica

    [WinForms] Instancia Única de Formulario

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    sábado, 6 de abril de 2013 8:48
  • Frm.ShowDialog()

    esto te falta yo tenia el mismo problema y coloque este codigo... 

    • Propuesto como respuesta Claudio_Ancamil martes, 25 de marzo de 2014 18:57
    martes, 25 de marzo de 2014 18:56