COLORIR LISTVIEW
Pessoal boa noite, em primeiro lugar gostaria de me desculpar pelo longo tempo ausente, mas
infelizmente foi por motivo de saúde (mas ainda não foi dessa vez...).
Gostaria da ajuda de vocês para, se for possÃvel, modificar um código que dá cor as linhas
da listview.
Para chamar a função:
Minha intenção seria colorir os campos no momento do preenchimento (para evitar percorrer toda listview)
mas eu não sei como pegar o item (linha) atual, minha ideia seria mais ou menos essa:
Acho que deu pra compreender....
infelizmente foi por motivo de saúde (mas ainda não foi dessa vez...).
Gostaria da ajuda de vocês para, se for possÃvel, modificar um código que dá cor as linhas
da listview.
Public Sub ColorListviewRow(LV As ListView, RowNbr As Long, RowColor As OLE_COLOR) [ô]Colorir listview
Dim itmX As ListItem
Dim lvSI As ListSubItem
Dim intIndex As Integer
On Error GoTo ErrorRoutine
Set itmX = LV.ListItems(RowNbr)
itmX.ForeColor = RowColor
For intIndex = 1 To LV.ColumnHeaders.Count - 1
Set lvSI = itmX.ListSubItems(intIndex)
lvSI.ForeColor = RowColor
Next
Set itmX = Nothing
Set lvSI = Nothing
Exit Sub
ErrorRoutine:
Exit Sub
End Sub
Para chamar a função:
Dim f As Integer
Dim coluna As String
With lstAlterar.ListItems
For f = 1 To .Count
coluna = lstAlterar.ListItems(f).ListSubItems(14).Text
Select Case coluna
Case [Ô]S[Ô]: ColorListviewRow lstAlterar, .Item(f).Index, &H8000&
Case [Ô]N[Ô]: ColorListviewRow lstAlterar, .Item(f).Index, vbBlue
End Select
Next f
End With
Minha intenção seria colorir os campos no momento do preenchimento (para evitar percorrer toda listview)
mas eu não sei como pegar o item (linha) atual, minha ideia seria mais ou menos essa:
rs.Open [Ô]Select * from tbClientes[Ô],db,3,3
do until rs.EOF
Set Item = lstAlterar.ListItems.Add(, , [Ô][Ô] & [Ô] [Ô] & rs!Nome)
With item
.SubItems(1) = [Ô][Ô] & rs!Codigo
.SubItems(2) = [Ô][Ô] & rs!Celular
.SubItems(3) = [Ô][Ô] & rs!Telefone
.SubItems(14) = [Ô][Ô] & rs!sit
If rs!sit = [Ô]S[Ô] Then ColorListviewRow lstAlterar, lstAlterar.ListItems.Item(Item).Index, &H8000&
If rs!sit = [Ô]N[Ô] Then ColorListviewRow lstAlterar, lstAlterar.ListItems.Item(Item).Index, vbBlue
rs.MoveNext
End With
Loop
Acho que deu pra compreender....
O Ãtem ou linha atual você pode pegar o contador de linhas do listview, mais ou menos assim:
PS: não tenho certeza da propriedade correta, mas o que está em azul, seria uma maneira de pegar o número de Ãtens. O que acontece ali é que assim que o Ãtem é adicionado, busca-se o número de Ãtens no listview. Isso nos daria sempre o último Ãtem.
rs.Open [Ô]Select * from tbClientes[Ô],db,3,3
do until rs.EOF
Set Item = lstAlterar.ListItems.Add(, , [Ô][Ô] & [Ô] [Ô] & rs!Nome)
With item
.SubItems(1) = [Ô][Ô] & rs!Codigo
.SubItems(2) = [Ô][Ô] & rs!Celular
.SubItems(3) = [Ô][Ô] & rs!Telefone
.SubItems(14) = [Ô][Ô] & rs!sit
If rs!sit = [Ô]S[Ô] Then ColorListviewRow lstAlterar, lstAlterar.ListItems.Item([txt-color=#0000f0]lstAlterar.ListItems.Count[/txt-color] - 1).Index, &H8000&
If rs!sit = [Ô]N[Ô] Then ColorListviewRow lstAlterar, lstAlterar.ListItems.Item([txt-color=#0000f0]lstAlterar.ListItems.Count[/txt-color] - 1).Index, vbBlue
rs.MoveNext
End With
Loop
PS: não tenho certeza da propriedade correta, mas o que está em azul, seria uma maneira de pegar o número de Ãtens. O que acontece ali é que assim que o Ãtem é adicionado, busca-se o número de Ãtens no listview. Isso nos daria sempre o último Ãtem.
Ah, ia digitar, mas cliquei no botão antes e esqueci, você estava doente? Está se sentindo melhor? O que houve?
Citação::
Ah, ia digitar, mas cliquei no botão antes e esqueci, você estava doente? Está se sentindo melhor? O que houve?
Estava doente sim e muito obrigado por perguntar, na minha idade doenças tem aos montes, fora a indisposição
pra tudo.
Os médicos disseram que foi uma virose....
Quanto ao código vou testar aqui e desde já muito obrigado.
Funcionou perfeitamente!!
Muito obrigado Kerplunk....
Com isso já economizo um pouco de recurso do sistema.
Muito obrigado Kerplunk....
Com isso já economizo um pouco de recurso do sistema.
Ah, só não precisou do
.count - 1
ficou só .count
mesmo...
Tópico encerrado , respostas não são mais permitidas