CORES LISTVIEW VB6

MILTONSILVA94 25/01/2015 00:10:48
#444003
Prezados...
Estou com dúvidas referente a adicionar cor nas linhas do listview.
Por exemplo, quero que a linha 1 do listview seja de cor vermelha e a linha 2 do listview seja da cor branca, simplesmente isso.
Estudei uma maneformas de como fazer isso:

lvwLista.ListItems(0).ListSubItems(0).ForeColor = red

Porém dá o erro em [ô]red[ô].
Se souberem alguma outra rotina para fazer isso via [ô]código fonte[ô], aguardo instruções.
Fico no aguardo, obrigado.
EPISCOPAL 25/01/2015 12:31:40
#444008
Não sei se a instrução está certa, mas a cor seria:

lvwLista.ListItems(0).ListSubItems(0).ForeColor = [txt-color=#e80000]VbRed[/txt-color]
MILTONSILVA94 25/01/2015 14:52:50
#444010
Prezados...
Conforme testes realizados, não deu nenhuma alteração no meu listview com o código acima.
Aguardo instruções novas, obrigado.
OMAR2011 25/01/2015 20:16:03
#444013
Resposta escolhida
Adicione um picturebox.
Achado na net.
[ô]----------------------------------------------------------------------------------------------------------------------------------------
[ô] FUNÇÃO PARA ZEBRAR O LISTVIEW
[ô]----------------------------------------------------------------------------------------------------------------------------------------
Function LVZebra(lv As ListView, Pic As PictureBox, Cor1 As Long, Cor2 As Long) As Boolean
Dim lHght As Long
Dim lWdth As Long

LVZebra = False

If lv.View <> lvwReport Then Exit Function
If lv.ListItems.Count = 0 Then Exit Function

With lv
.Picture = Nothing
.Refresh
.Visible = True
.PictureAlignment = lvwTile
lWdth = .Width
End With

With Pic
.AutoRedraw = False
.Picture = Nothing
.BackColor = vbWhite
.Height = 1
.AutoRedraw = True
.BorderStyle = vbBSNone
.ScaleMode = vbTwips
.Top = Me.Top - 10000
.Width = Screen.Width
.Visible = False
.Font = lv.Font

With .Font
.Bold = lv.Font.Bold
.Charset = lv.Font.Charset
.Italic = lv.Font.Italic
.Name = lv.Font.Name
.Strikethrough = lv.Font.Strikethrough
.Underline = lv.Font.Underline
.Weight = lv.Font.Weight
.Size = lv.Font.Size
End With

lHght = lv.ListItems(1).Height

.Height = lHght * 2
.Width = lWdth

Pic.Line (0, 0)-(lWdth, lHght), Cor1, BF
Pic.Line (0, lHght)-(lWdth, (lHght * 2)), Cor2, BF
.AutoSize = True
.Refresh

End With

lv.Refresh
lv.Picture = Pic.Image
LVZebra = True

End Function

Private Sub Form_Load()
Dim i As Integer

[ô]Insere dados
For i = 1 To 100
ListView1.ListItems.Add i
ListView1.ListItems(i).SubItems(1) = [Ô]Sou o nome de número [Ô] & i
Next

[ô]Insere linhas de separação e seleciona a linha toda
ListView1.GridLines = True
ListView1.FullRowSelect = True

[ô]Zebra o listview
If LVZebra(ListView1, Picture1, vbRed, vbWhite) = False Then Exit Sub
End Sub

MILTONSILVA94 25/01/2015 21:45:45
#444015
Essa rotina é boa, funciona. Obrigado OMAR2011.
Se alguém souber alguma nova rotina, me informar.
ERLANMG 26/01/2015 10:27:19
#444021
Bom dia a todos!

Utilizo a função a seguir:

Dim I As Integer
Dim ZEBRADO As Boolean = True
Dim Pinta_Cor As Color = Color.PowderBlue

Dim Desfaz_Cor As Color = Color.White


If ListView1.Items.Count <> 0 Then
For I = 0 To ListView1.Items.Count - 1
If ZEBRADO = True Then

ListView1.Items(I).BackColor = Pinta_Cor
ZEBRADO = False
Else
ListView1.Items(I).BackColor = Desfaz_Cor
ZEBRADO = True
End If
Next
End If






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