Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Thyago Developer

Criar Combobox, Listar, Salvar, Atualizar ou Deletar no DataGridView

Recommended Posts

Olá pessoal bom dia gostaria de uma ajuda para poder criar uma combobox num meu DatagridView em Tempo de Execução.

Sei que existem diversar maneiras para isso. Bem o que preciso é criar uma combobox numa só coluna do meu datagrid, utilizando uma coluna já existente. Por exemplo neste trecho na minha consulta SQL:

.CommandText = " SELECT Pessoas_Contatos.Pes_contato_ID As ID, Pessoas_Contatos.Pes_contato_GrupoID, Pessoas_Contatos.Pes_contato_Nome As Nome, " 

Tenho o Pessoas_Contatos.Pes_contato_GrupoID, gostaria que esta coluna fosse uma combobox no meu datagrid, como ficaria para eu listar os dados na combobox? E qual seria o comando para eu salvar ou atualizar direto no Banco.

 

Achei este código aqui mas, está criar combobox em qualquer célular do DataGrid


Private Sub gvContatos_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles gvContatos.CellClick


       'MessageBox.Show("Você clicou em: " + gvContatos.Rows(e.RowIndex).Cells(e.ColumnIndex).ToString)

       Dim cellComb As DataGridViewComboBoxCell

       gvContatos.Rows(e.RowIndex).Cells(e.ColumnIndex) = New DataGridViewComboBoxCell

       cellComb = gvContatos.Rows(e.RowIndex).Cells(e.ColumnIndex)

       cellComb.Items.Add("Cliente")

       cellComb.Items.Add("Funcionário")

       cellComb.Items.Add("Fornecedor")

       cellComb.Items.Remove("")

       Me.gvContatos.Refresh()

   End Sub


Private Sub gvContatos_CellEndEdit(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles gvContatos.CellEndEdit

       Dim valorCell As String

       'A variavel "valorCell" serve para guardar o valor selecionado na celula combox, para ser atribuido novamente na celula quando ela se tornar textBoxCell novamente!!!!!

       valorCell = gvContatos.Item("Grupo", gvContatos.CurrentRow.Index).Value

       gvContatos.Item("Grupo", gvContatos.CurrentRow.Index) = New DataGridViewTextBoxCell

       gvContatos.Item("Grupo", gvContatos.CurrentRow.Index).Value = valorCell

       Me.gvContatos.Refresh()
   End Sub

 

Desde já agradeço qualquer ajuda ou solução ....

 

Thyago

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim:

 

 

Private Sub gvContatos_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)


        //MessageBox.Show("Você clicou em: " + gvContatos.Rows(e.RowIndex).Cells(e.ColumnIndex).ToString)

       If e.ColumnIndex = gvContatos.Columns("Grupo").Index Then
           Dim cellComb As DataGridViewComboBoxCell

           gvContatos.Rows(e.RowIndex).Cells("Grupo") = New DataGridViewComboBoxCell()

           cellComb = gvContatos.Rows(e.RowIndex).Cells("Grupo")

           cellComb.Items.Add("Cliente")

           cellComb.Items.Add("Funcionário")

           cellComb.Items.Add("Fornecedor")

           cellComb.Items.Remove("")

           Me.gvContatos.Refresh()
       Else
           Exit Sub
       End If

   End Sub

 

Faça o if verificar se é esta a coluna certa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.