ZEBRAR LISTVIEW

SACOFRITO 29/12/2010 09:28:39
#360606
Bom dia galera, gostaria que voces me ajudassem em como Zebrar um listview...
Não tenho problemas com o preenchimento.. mas queria [Ô]emperiquitar[Ô] um pouco mais o sistema.

Quem puder me ajudar com o código e como utilizar eu agradeço...

Abraços....
JEISONANTONI 29/12/2010 09:30:26
#360608
como assim zebrar?????
SACOFRITO 29/12/2010 10:05:49
#360616
Bom galera antes mesmo de vir aqui e ver as respostas, achei uma função que faz o que eu preciso..
Mas quanto eu estava testando encontrei um problema...

Quando o resultado dos itens ultrapassam [Ô]uma página[Ô](tipo passa do número de itens que aparecem sem usar a barra de rolagem..)
ele buga tdo.. tipo que duplica os items em cada linha e fica tudo horrível.. para corrigir o problema eu preciso passar pelos itens usando as setas do teclado, ou entao descer [Ô]uma pagina[Ô] a barra de rolagem e voltar.. e meu cliente é chato e isso ele nao irá fazer.

Segue a rotina que estou usando,
  If optDescricao.Value = True Then
Set listproduto = db.OpenRecordset([Ô]SELECT * FROM produto WHERE DESCRICAO LIKE [ô]*[Ô] & txtDescricao & [Ô]*[ô] ORDER BY DESCRICAO[Ô], dbOpenDynaset)
List1.ListItems.Clear
Do While Not listproduto.EOF

Set Item = List1.ListItems.Add

Item.Text = listproduto!CODIGO
Item.SubItems(1) = listproduto!DESCRICAO
Item.SubItems(2) = IIf(IsNull(listproduto!CUSTOMED), [Ô][Ô], Format(listproduto!CUSTOMED, [Ô]##,#0.00[Ô]))
Item.SubItems(3) = IIf(IsNull(listproduto!margem), [Ô][Ô], Format(listproduto!margem, [Ô]##,#0.00[Ô]))
Item.SubItems(4) = Format(listproduto!precovenda, [Ô]##0.00[Ô])
Item.SubItems(5) = IIf(IsNull(listproduto!PRECOATACADO), [Ô][Ô], Format(listproduto!PRECOATACADO, [Ô]##0.00[Ô]))
Item.SubItems(6) = IIf(IsNull(listproduto!estoque), 0, listproduto!estoque)
AltLVBackground List1, vbWhite, vbInfoBackground
listproduto.MoveNext
Loop


E para zebrar a list.
  Private Sub AltLVBackground(lv As ListView, _
ByVal BackColorOne As OLE_COLOR, _
ByVal BackColorTwo As OLE_COLOR)

Dim lSM As Byte
Dim picAlt As PictureBox
With lv
If .View = lvwReport And .ListItems.Count Then
Set picAlt = Me.Controls.Add([Ô]VB.PictureBox[Ô], [Ô]picAlt[Ô])
lSM = .Parent.ScaleMode
.Parent.ScaleMode = vbTwips
.PictureAlignment = lvwTile
lH = .ListItems(1).Height
With picAlt
.BackColor = BackColorOne
.AutoRedraw = True
.Height = lH * 2
.BorderStyle = 0
.Width = 10 * Screen.TwipsPerPixelX
picAlt.Line (0, lH)-(.ScaleWidth, lH * 2), BackColorTwo, BF
Set lv.Picture = .Image
End With
Set picAlt = Nothing
Me.Controls.Remove [Ô]picAlt[Ô]
lv.Parent.ScaleMode = lSM
End If
End With
End Sub


Segue anexo print screen do meu problema
SACOFRITO 29/12/2010 15:21:30
#360637
Gente, ja consegui.. com apenas uma linha meu problema foi resolvido.

List1.refresh ao final da inserção de dados na list.
Créditos ao meu amigo THIAGOEMECAL

Obrigado à quem tentou ajudar.
Tópico encerrado , respostas não são mais permitidas