LISTVIEW - COLUNA COM CHECKBOX

TIAGOVARETA 11/01/2013 10:36:42
#417175
Boas pessoal,
Tenho uma Listview para listar os dados da BD, e tenho um campo SIM/NÃO. Queria que ao listar os dados na Listview em vez de aparecer True/False, aparecesse uma checkbox com o visto ou não.

O código que uso para preeencher a Listview é:

Dim It As ListViewItem
ltw_precos.Items.Clear()
ltw_precos.View = View.Details
ltw_precos.FullRowSelect = True
With ltw_precos
.Columns.Add([Ô]Preço[Ô], 75, HorizontalAlignment.Left)
.Columns.Add([Ô]Unidade[Ô], 75, HorizontalAlignment.Left)
.Columns.Add([Ô]Tipo Embalagem[Ô], 150, HorizontalAlignment.Left)
.Columns.Add([Ô]Tipo Preço[Ô], 150, HorizontalAlignment.Left)
.Columns.Add([Ô]Activo[Ô], 50, HorizontalAlignment.Left)
End With

For Each ligacao.oDataRow In oDataTable.Rows
If Not oDataRow Is DBNull.Value Then
It = ltw_precos.Items.Add(oDataRow(2)) [ô]preco
It.SubItems.Add(oDataRow(5)) [ô]unidade
It.SubItems.Add(oDataRow(6)) [ô]Tipo Embalagem
It.SubItems.Add(oDataRow(7)) [ô]Tipo Preço
It.SubItems.Add(oDataRow(3)) [ô]activo (é nesta coluna que quero a checkbox)
It.SubItems.Add(oDataRow(0)) [ô]id_preco
It.SubItems.Add(oDataRow(1)) [ô]id_produto
It.SubItems.Add(oDataRow(4)) [ô]observacoes
End If

Será que alguém me pode indicar umas dicas para fazer isto?
PEGUDO 11/01/2013 13:04:09
#417184
Resposta escolhida
Cara,
Não tem como fazer isso do modo tradicional porque o ListView só tem CheckBox na frente do Primeiro item e não nos subitems.
Para fazer isso você terá de usar programação orientada a gambiarra. Veja a minha como ficou:


Pega o exemplo em anexo e veja se te serve pra alguma coisa.
Mas lembre-se que os check boxes NÃO são controles e sim textos do tipo Wingdings.
Então se você quiser que o [Ô]CheckBox[Ô] mude seu estado de selecionado, você terá de mexer no evento MouseUp e MouseDown para trocar o texto.

abraços
Tópico encerrado , respostas não são mais permitidas