none
Pasar valor de una celda de un GridControl a un combobox en otro formulario RRS feed

  • Pregunta

  • Buenos días, como dice el titulo tengo un inconveniente al poder mandar un valor al seleccionar una celda y posteriormente mediante un botón enviar ese valor a otro formulario.

    Nota: se llama gridControl ya que es una versión de datagriview de dexpress

    aquí muestro mi código:

      Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Try
                Dim frm As New FrmClientes_Editar
                Dim Valor As String
                frm.LblCod.Text = CInt(GridView1.GetFocusedRowCellDisplayText("ID_Cliente").ToString)
                frm.TxtNombre.Text = GridView1.GetFocusedRowCellDisplayText("Nombre").ToString
                frm.TxtTel.Text = GridView1.GetFocusedRowCellDisplayText("Telefono").ToString
                frm.TxtDirec.Text = GridView1.GetFocusedRowCellDisplayText("Direccion").ToString
                frm.ComboTarifa.SelectedValue = CInt(GridView1.GetFocusedRowCellDisplayText("Id_Tarif").ToString)
                Valor = GridView1.GetFocusedRowCellDisplayText("Deshabilitado").ToString
                If Valor = "Seleccionado" Then
                    frm.ChkDeshab.CheckState = 1
                Else
                    frm.ChkDeshab.CheckState = 0
                End If
                frm.ShowDialog()
            Catch ex As Exception
                MsgBox(ex.Message.ToString)
            End Try
        End Sub

    Al mandar valores de una celda a los textbox funciona perfectamente, al igual que un checkbox, pero no me funciona con un combobox.

    El combobox lo lleno (en el segundo formulario) mediante una consulta usando Linq y es este el codigo:

     Private Sub FrmClientes_Editar_Load(sender As Object, e As EventArgs) Handles MyBase.Load
           
            Dim con = From P In db.Tarifas Select P
            ComboTarifa.DataSource = con
            ComboTarifa.DisplayMember = "Nomb_tarifa"
            ComboTarifa.ValueMember = "Id_Tarifa"
    
    
        End Sub

    el problema radica en que no logro asignarle el valor del grid a el combobox, alguien me puede orientar a como solucionarlo...

    miércoles, 17 de octubre de 2018 14:57

Respuestas

  • Trata lo siguiente, aun cuando parezca ilógico o redundante

            For Each row As DataRow In con.Rows
                newRow = New String() {row("Nomb_tarifa"), row("IdTarifa")}
                tarifas.Rows.Add(newRow)
            Next

            ComboTarifa.DataSource = tarifas
            ComboTarifa.DisplayMember = "Nomb_tarifa"
            ComboTarifa.ValueMember = "Id_Tarifa"

    donde tarifas es un DataTable (puede ser tambien una lista) previamente definida con los 2 campos y donde con.rows.count > 0

    Si te funciona marcar como respuesta

    Saludos

    • Propuesto como respuesta Pablo Rubio jueves, 18 de octubre de 2018 16:05
    • Marcado como respuesta Pablo Rubio jueves, 25 de octubre de 2018 15:07
    miércoles, 17 de octubre de 2018 18:36