ERRO INICIANTE COMBOBOX EM DATAGRIDVIEW

 Tópico anterior Próximo tópico Novo tópico

ERRO INICIANTE COMBOBOX EM DATAGRIDVIEW

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#480374 - 23/03/2018 09:25:21

LCSSP

Cadast. em:Dezembro/2008


Bom dia a todos.

Sou iniciante no VB.NET e estou com um problema em uma inserção de uma combo em um datagrid.
Estou tentando inserir um datagrid usando uma coleção:

  Public Class Trata_cbo

    Public codigo As Object         ' Armazena o codigo
    Public Descricao As String      ' Armazena a descricao
    Public retorno As Integer       ' Armazena o tipo de retorno

    ' Inclui um registro
    Public Sub New(ByVal codigo_in As Object, ByVal descricao_in As String, retorno_in As Integer)
        codigo = codigo_in
        Descricao = descricao_in
        retorno = retorno_in
    End Sub

    ' Retorna a chamada
    Public Overrides Function ToString() As String

        ' retornar codigo ou descricao de acordo com a soclicitação
        If retorno = 0 Then
            Return codigo
        Else
            Return Descricao
        End If
    End Function

End Class


Então carrego os dados e vinculo ao datagrid

  
'Monta a Matriz de Origem do produto
        Dim origem_produto = {{"0", "1", "2"}, {"Própria", "Terceiros", "Indiferente"}}

        With cbo_origem
            'Loop de Inserção de Origem do Produto na Combo
            For i As Integer = LBound(origem_produto, 2) To UBound(origem_produto, 2)
                cbo_origem.Items.Add(New Trata_cbo(origem_produto(0, i), origem_produto(1, i), 1))
            Next
        End With


Inserindo

  .Columns.Insert(0, cbo_origem)


Porem ao seleciona o item retorna um erro :  "O valor de datagridviewcomboboxcell não é válido"
Já tentei de tudo e nada ainda.

Obrigado



#480919 - 16/04/2018 21:29:46

CLEVERTON
SERRINHA
Cadast. em:Dezembro/2003


Membro da equipe
Não seria mais simples vc criar uma estrutura/classe para seus dados, e atribuir uma Lista dessa estrutura a combo ?

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim lista As List(Of ClasseTeste) = New List(Of ClasseTeste)

        Dim item1 = New ClasseTeste()
        item1.Id = 1
        item1.Descricao = "Item 01"

        Dim item2 = New ClasseTeste()
        item2.Id = 2
        item2.Descricao = "Item 02"

        lista.Add(item1)
        lista.Add(item2)

        ComboBox1.DisplayMember = "Descricao"
        ComboBox1.ValueMember = "Id"
        ComboBox1.DataSource = lista

    End Sub

    Private Sub ComboBox1_SelectedValueChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedValueChanged
        If ComboBox1.SelectedIndex = -1 Then Exit Sub

        Dim item As ClasseTeste = ComboBox1.SelectedItem
        Label1.Text = item.Descricao

    End Sub
End Class


Public Class ClasseTeste
    Property Id As Integer
    Property Descricao As String

End Class




 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por LCSSP em 23/04/2018 11:16:20