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


Para responder este tópico o login é requerido
Se você já possui uma conta de usuário por favor faça seu login
Se você não possui uma conta de usuário use a opção Criar usuário