Usuário com melhor resposta
Adicionar ícone em coluna do datagridview

Pergunta
-
Olá
Gente, to tentando adicionar um ícone aos itens de uma coluna datagridview:
For i As Integer = 0 To dgvPedidos.Rows.Count - 1 For ColNo As Integer = 1 To 9 If dgvPedidos.Rows(i).Cells(3).Value = "Aberto" Then dgvPrecosVenda.Rows(i).Cells(2).Value = ImageList1.Images(1) Else dgvPedidos.Rows(i).Cells(2).Value = ImageList1.Images(0) End If Next Next End Sub
Mas em vez da imagem/ícone, exibe "System.drawing.bitmap"
É que para adicionar as colunas, eu uso:
Dim ColunasExibidas_Pedidos = "C, Cliente, ' ' as [ ], Situacao as [Situação], Entregue as [Entrega]" SELECT " & ColunasExibidas_Pedidos & " FROM Pedidos ORDER by Data ASC"
Não sei se tem como definir o tipo de coluna picture por meio do meu "ColunasExibidas_Pedidos". Sei que quando configuro uma tabela SQL posso escolher o tipo de dados, mas pelo SELECT não sei como.
Alguém pode me ajudar? Desde já agradeço.
- Editado Eliseu5 segunda-feira, 1 de fevereiro de 2016 16:37
Respostas
-
Olá Gente
Solucionei, acabei criando no arquivo SQl (.mdf) uma coluna tipo "Imagem" e pronto. É que como eu não vou nunca salvar imagens na tabela, mas apenas exibir ícones na hora da pesquisa, achava desnecessário criar esta coluna. Mas como ainda não houve uma solução para criar a coluna tipo imagem na hora da pesquisa e exibição dos dados SQL Server, então improvisei.
Todas as Respostas
-
-
Olá Simor
A coluna é adicionada através do comando "SELECT" (SELECT C, Cliente, ' ' as [ ] FROM Pedidos), então não é definido o tipo, creio que é por padrão tipo String. Sei que as colunas C, Cliente e outras eu defini na tabela SQL o tipo string, mas
' ' as [ ]
não busca da tabela.
Então, como inserir a coluna do tipo "ImageColumn" através do comando SQL "SELECT"?
-
-
Olá Simor
Eu tenho meu datagridview em branco, sem colunas. Após executar meu software ele carrega no datagrid as colunas que eu escolho no meu "ColunasExibidas_Pedidos", juntamente com os dados de minha tabela SQL server:
Dim ColunasExibidas_Pedidos = "C, Cliente, ' ' as [ ], Situacao as [Situação], Entregue as [Entrega], Financeiro, Data, PedidoNum as [Pedido], 'R$' as [ ], TotalRS as [Valor] " 'Colunas visiveis
Public Sub Carregar_Pedidos() Using con As SqlConnection = ConexaoSQL() Try con.Open() Dim sql As String = "SELECT " & ColunasExibidas_Pedidos & " FROM Pedidos WHERE PedidoNum LIKE '%" & txtBuscar.Text.Trim ORDER by Data ASC" Dim cmd As SqlCommand = New SqlCommand(sql, con) Dim da As SqlDataAdapter = New SqlDataAdapter(cmd) Dim dt As DataTable = New DataTable da.Fill(dt) dgvPedidos.DataSource = dt Catch ex As Exception MsgBox(ex.Message) Finally con.Close() End Try End Using End Sub
Só que a terceira coluna:
' ' as [ ]
não foi criada na tabela física (no arquivo *.mdf), pois eu não vou armazenar o ícone no arquivo .mdf, só exibir. Então a coluna " " será criada na hora em que eu chamo a função "Carregar_Pedidos()".
Como posso definir então, através de meu código acima que a coluna " " será uma "ImageColumn"?
-
Olá Gente
Solucionei, acabei criando no arquivo SQl (.mdf) uma coluna tipo "Imagem" e pronto. É que como eu não vou nunca salvar imagens na tabela, mas apenas exibir ícones na hora da pesquisa, achava desnecessário criar esta coluna. Mas como ainda não houve uma solução para criar a coluna tipo imagem na hora da pesquisa e exibição dos dados SQL Server, então improvisei.
-
Olá, Eliseu... É possível criar a estrutura da grid view de forma explícita, mais ou menos assim:
Me.dgvExemplo.ColumnCount = dt.Columns.Count Me.dgvExemplo.ColumnHeadersVisible = True Me.dgvExemplo.Columns.Add( New DataGridViewImageColumn With { .Image = Drawing.Image.FromFile("img_example.png") } ) For i = 0 To dt.Rows.Count - 1 Me.dgvExemplo.Rows.Add(dt(i).ItemArray) Next
-
-