Jump to content

GGerminiani

Members
  • Content count

    85
  • Joined

  • Last visited

Community Reputation

0 Comum

1 Follower

About GGerminiani

  • Birthday 07/27/1990

Informações Pessoais

  • Sexo
    Masculino
  • Localização
    São Paulo, SP

Recent Profile Visitors

1049210 profile views
  1. GGerminiani

    Popular Combobox de Datagridview

    Depois de 5 anos me deparei com a mesma situação.... para quem tiver o mesmo problema, posto aqui como foi solucionado: Primeiramente, todo o trabalho com meu grid é através de código (tanto formatação, quanto população).... Formatação: Public Shared Function dgvContato(DGV As DataGridView) As DataGridView Try DGV.Columns.Clear() With DGV .DefaultCellStyle.Font = New Font("Consolas", 12) .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill .AllowUserToAddRows = False .AlternatingRowsDefaultCellStyle.BackColor = Color.Bisque .SelectionMode = DataGridViewSelectionMode.FullRowSelect .AllowUserToResizeColumns = False .RowHeadersVisible = False .AllowUserToResizeRows = False .MultiSelect = False .ColumnCount = 4 .Columns(0).Name = "ID" .Columns(1).Name = "Nome" .Columns(2).Name = "Data Criação" .Columns(3).Name = "Data Modififcação" .Columns(0).Visible = False .Columns(1).AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill .Columns(2).Width = 170 .Columns(3).Width = 170 .Columns(0).ReadOnly = True .Columns(1).ReadOnly = True .Columns(2).ReadOnly = True .Columns(3).ReadOnly = True .Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter .Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 'Criação de um Combobox dentro do DGV, para mostrar os telefones dos meus contatos Dim column As New DataGridViewComboBoxColumn() With column .HeaderText = "Telefone(s)" .Name = "telefone" .ReadOnly = False .Width = 170 .FlatStyle = FlatStyle.Standard .DisplayStyle = DataGridViewComboBoxDisplayStyle.ComboBox .CellTemplate = New DataGridViewComboBoxCell() End With DGV.Columns.Insert(2, column) End With For Each columns As DataGridViewColumn In DGV.Columns DGV.Columns(columns.Index).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter Next Return DGV Catch ex As Exception MessageBox.Show(ex.Message, "Alerta de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error) Return Nothing End Try End Function População: Public Shared Function dgvContatosPop(DGV As DataGridView) As DataGridView Try Dim cnCompras As New Connection.compras_flEntities Dim pesquisa = From c In cnCompras.contatos Select c Dim index As Integer = 0 If pesquisa.Count > 0 Then For Each i In pesquisa cnCompras = New Connection.compras_flEntities Dim telefones = (From c In cnCompras.contatos Join t In cnCompras.telefones On c.id_contato Equals t.id_contato Where z.id_contato = i.id_contato Select t).ToList DGV.Rows.Add(i.id_zelador, i.nome, Nothing, Nothing, i.data_criacao, i.data_modificacao) 'Aqui começo a popular o Combobox do DGV Dim comboItens As New DataGridViewComboBoxCell If telefones.Count > 0 Then For Each t In telefones Dim tel As String = t.numero.ToString Dim obs As String = String.Empty If t.descricao.ToString.Equals(String.Empty) = False Then obs = " (" & t.descricao.ToString.Trim & ")" End If comboItens.Items.Add(t.numero & obs) Next Else comboItens = Nothing End If 'Depois do meu Combobox populado, faço meu DGV receber os itens DGV.Rows(index).Cells("telefone") = comboItens index += 1 Next DGV.Rows(0).Cells(0).Selected = False End If Return DGV Catch ex As Exception MessageBox.Show(ex.Message, "Alerta de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error) Return Nothing End Try End Function Enfim, foi isso. Obrigado à todos.
  2. GGerminiani

    Popular Combobox de Datagridview

    Simplificando... Neste DataGridView, vou trazer EMPRESAS ok? Porem, na estrutura de meu BD, criei uma tabela TELEFONES, sendo que a Empresa pode ter vários números cadastrados... Portanto, a cada linha do DGV, na minha coluna TELEFONES, gostaria que fosse ComboBox, trazendo todos os contatos daquela empresa. Nos métodos apresentados acima, simplesmente eles inserem a coluna com Combobox, com valores já definidos no combo, por exemplo, "amarelo, azul e vermelho". Grato. O projeto que anexei no sendspace ilustra bem o que gostaria de fazer. Ele está simples e leve.
  3. GGerminiani

    Popular Combobox de Datagridview

    Khaos, Boa tarde. Infelizmente não. O método que eles discutem é tendo um conteúdo dentro do ComboBox fixo. No caso o meu seria variável. Para facilitar a quem queira se aventurar, criei um projetinho com a situação que ocasiona o erro. Segue link: http://www.sendspace.com/file/ka00e3 Grato.
  4. GGerminiani

    Popular Combobox de Datagridview

    Khaos, Boa tarde. Primeiramente muito obrigado pela resposta e aproveito para lhe desejar um bom 2014! Tentei realizar colocando o .ToString, porem o erro persiste. Para simplificar o problema acima, fiz um exemplo prático e rápido do que estou tentando: 1) Configuração do DataGridView: With DGV .ColumnCount = 3 .Columns(0).Name = "Col 1" .Columns(1).Name = "Col 2" .Columns(2).Name = "Col 3" End With Dim column As New DataGridViewComboBoxColumn() With column .HeaderText = "Col CombBox" .Name = "colcombo" .FlatStyle = FlatStyle.Standard .SortMode = DataGridViewColumnSortMode.Automatic .CellTemplate = New DataGridViewComboBoxCell() End With DGV.Columns.Insert(3, column) 2) Alimento a variável de DGV_ComboBox: Dim combo As New DataGridViewComboBoxCell combo.Items.Add("1") combo.Items.Add("2") combo.Items.Add("3") 3) Crio a linha no DGV: DGV.Rows.Add(0,1,2,combo) BUG: Alguma ideia?
  5. GGerminiani

    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) Desde já, muito obrigado e boas festas à todos!!! :natallaugh:
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.