Popular Combobox de Datagridview
Prezados,
Boa tarde!
Eu sei que é um infortúnio mandar pergunta no final da aula (estamos extremamente próximos ao Natal!), mas realmente é uma dúvida que está me incomodando...
Já tentei por diversas maneiras popular um combobox num datagridview, mas o .NET não está colaborando.
Quero uma função que me traga um DGV populado. Até aqui, ok, realizo vários, sem problemas... é que neste caso, quero colocar um Combobox (até aqui, também sem problemas), mas no momento que tento preeche-lo, o runtime me retorna um erro.
Public Shared Function DGV_Autorizacoes(DGV As DataGridView) As DataGridView
Try
DGV.Columns.Clear()
'AQUI PREPARO A FORMATAÇÃO DO DGV
With DGV
.DefaultCellStyle.Font = New Font("Consolas", 12)
'.ReadOnly = True
.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
.AllowUserToAddRows = False
.AlternatingRowsDefaultCellStyle.BackColor = Color.Bisque
.SelectionMode = DataGridViewSelectionMode.FullRowSelect
.AllowUserToResizeColumns = False
.RowHeadersVisible = False
.AllowUserToResizeRows = False 'não permite redimensionar a linha
.MultiSelect = False 'selecionar várias linhas = falso
.ColumnCount = 6
.Columns(0).Name = "Código"
.Columns(1).Name = "Nome"
.Columns(2).Name = "Documento"
.Columns(3).Name = "CPF"
.Columns(4).Name = "Parentesco"
.Columns(5).Name = "ID_TELEFONE"
.Columns(0).Visible = False
.Columns(1).AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill
.Columns(2).Width = 100
.Columns(3).Width = 200
.Columns(4).Width = 300
.Columns(5).Visible = False
End With
'INSIRO A COLUNA DE COMBOBOX
Dim column As New DataGridViewComboBoxColumn()
With column
.HeaderText = "Telefone(s)"
.Name = "telefone"
.Width = 150
.FlatStyle = FlatStyle.Standard
.SortMode = DataGridViewColumnSortMode.Automatic
.CellTemplate = New DataGridViewComboBoxCell()
End With
DGV.Columns.Insert(6, column)
For Each columns As DataGridViewColumn In DGV.Columns
DGV.Columns(columns.Index).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
Next
_query = "select * from AUTORIZACOES"
Dim comm2 As OleDbCommand = New OleDbCommand(_query, _cn)
Dim da2 As OleDbDataAdapter = New OleDbDataAdapter(comm2)
Dim ds2 As DataSet = New DataSet()
da2.Fill(ds2, "AUTORIZACOES")
Dim _AUTS() As DataRow = ds2.Tables("AUTORIZACOES").Select
For Each registro As DataRow In ds2.Tables("AUTORIZACOES").Rows
'FAÇO A PESQUISA NO BD REFERENTE À UM ID
_query = "select * from TELEFONES where ID = @id"
Dim comm As OleDbCommand = New OleDbCommand(_query, _cn)
comm.Parameters.AddWithValue("@id",_registro("ID"))
Dim da As OleDbDataAdapter = New OleDbDataAdapter(comm)
Dim ds As DataSet = New DataSet()
da.Fill(ds, "TELEFONES")
Dim _TELS() As DataRow = ds.Tables("TELEFONES").Select
'CRIO UMA COMBOBOX DE DGV PARA ARMAZENAR OS VALORES
Dim combo As New DataGridViewComboBoxCell
For Each registro2 As DataRow In ds.Tables("GRUPOS").Rows
combo.Items.Add(registro2("TELEFONE"))
Next
'POPULO A LINHA COM AS INFORMAÇÕES DA AUTORIZAÇÃO + O COMBOBOX
DGV.Rows.Add(registro("COLUNA1"), registro("COLUNA2"), registro("COLUNA3"), registro("COLUNA4"), registro("COLUNA5"), registro("COLUNA6"), combo)
Next
Return DGV
Catch ex As Exception
MessageBox.Show(ex.Message, "Alerta de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return Nothing
Finally
If _cn.State = ConnectionState.Open Then _cn.Close()
End Try
End Function
End Class
O problema está aqui:
Crio uma variável estilo ComboBox para célula e vou preenchendo informações nela...
Dim combo As New DataGridViewComboBoxCell For Each registro2 As DataRow In ds.Tables("GRUPOS").Rows combo.Items.Add(registro2("TELEFONE")) NextPorem quando tento adiciona-la à linha, o sistema me apresenta erro. 'POPULO A LINHA COM AS INFORMAÇÕES DA AUTORIZAÇÃO + O COMBOBOX DGV.Rows.Add(registro("COLUNA1"),[...] combo)
/applications/core/interface/imageproxy/imageproxy.php?img=http://uploaddeimagens.com.br/images/000/142/266/full/Caixa_de_Di%25C3%25A1logo_de_Erro_Padr%25C3%25A3o_de_DataGridView.jpg?1387837677&key=04735cb6af990241a74f1e65eb1b1161b9df88d4b7d9e0e7d6388e5f7ec1963a" alt="Caixa_de_Di%C3%A1logo_de_Erro_Padr%C3%A3" />
Desde já, muito obrigado e boas festas à todos!!!
:natallaugh:
Discussão (8)
Carregando comentários...