COLORIR LINHA

 Tópico anterior Próximo tópico Novo tópico

COLORIR LINHA

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#487410 - 27/02/2019 22:50:27

LUCS
BALNEARIO CAMBORIU
Cadast. em:Novembro/2018


Boa noite,
Tudo bem com vcs?

Estou usando uma listview, com check e quando marco o check gostaria que ela ficasse destacada com uma cor determinada, quando desmarco voltasse a cor normal

estou tentando fazer desta forma
mas não funcionou, será que alguém poderia me dar uma ajuda?


Private Sub ListContasReceber_ItemCheck(ByVal Item As MSComctlLib.ListItem)

               If ListContasReceber.ListItems.Count = 0 Then Exit Sub
              
              ListContasReceber.ListItems(Item.Index).Selected = True
         For i = 1 To ListContasReceber.ListItems.Count
            If ListContasReceber.ListItems(i).Selected = True Then
               ListContasReceber.ListItems.Item(i).Checked = True
               ListContasReceber, ListContasReceber.ListItems(i), &H8000000D
               Else
               ListContasReceber.ListItems.Item(i).Checked = False
              ListContasReceber, ListContasReceber.ListItems(i), &H808080
            End If
         Next i
End Sub




#487411 - 27/02/2019 23:42:32

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


você pode tirar algum proveito aqui usei uma vez para zebrar o listview

' FUNÇÃO PARA ZEBRAR O LISTVIEW
'-------------------------------
Private Sub AltLVBackground(lv As ListView, _
    ByVal BackColorOne As OLE_COLOR, _
    ByVal BackColorTwo As OLE_COLOR)
'---------------------------------------------------------------------------------
' Purpose   : Alternates row colors in a ListView control
' Method    : Creates a picture box and draws the desired color scheme in it, then
'             loads the drawn image as the listviews picture.
'---------------------------------------------------------------------------------
Dim lh      As Long
Dim lSM     As Byte
Dim picAlt  As PictureBox
    With ListView1
        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 ListView1.Picture = .image
            End With
            Set picAlt = Nothing
            Me.Controls.Remove "picAlt"
            ListView1.Parent.ScaleMode = lSM
        End If
    End With
End Sub



Resposta escolhida #487412 - 28/02/2019 07:34:24

OMAR2011
MONTES CLAROS
Cadast. em:Setembro/2011


Mais ou menos assim.
Private Sub ListView1_ItemCheck(ByVal Item As MSComctlLib.ListItem)
For x = 1 To ListView1.ListItems.Count
If ListView1.ListItems(x).Checked = True Then
ListView1.ListItems.Item(x).ListSubItems(1).ForeColor = vbRed
Else
ListView1.ListItems.Item(x).ListSubItems(1).ForeColor = vbBlue
End If
Next x
End Sub
Basta mudar a cor.



#487413 - 28/02/2019 08:16:35

LUCS
BALNEARIO CAMBORIU
Cadast. em:Novembro/2018


Citação:
:
Mais ou menos assim.
Private Sub ListView1_ItemCheck(ByVal Item As MSComctlLib.ListItem)
For x = 1 To ListView1.ListItems.Count
If ListView1.ListItems(x).Checked = True Then
ListView1.ListItems.Item(x).ListSubItems(1).ForeColor = vbRed
Else
ListView1.ListItems.Item(x).ListSubItems(1).ForeColor = vbBlue
End If
Next x
End Sub
Basta mudar a cor.



Bom dia, OMAR2011!

e se fosse para colorir a linha toda?

ListView1.ListItems.Item(x).ListSubItems(1).ForeColor = vbRed

pensei que se trocasse
ListSubItems(1)
por
ListContasReceber.ListItems
resolveria mas não deu certo...

Atenciosamente,




#487414 - 28/02/2019 08:37:34

OMAR2011
MONTES CLAROS
Cadast. em:Setembro/2011


Última edição em 01/03/2019 09:09:55 por OMAR2011

Melhore.
Private Sub ListView1_ItemCheck(ByVal Item As MSComctlLib.ListItem)
Dim coluna As Integer
coluna = ListView1.ColumnHeaders.Count - 1
For x = 1 To ListView1.ListItems.Count
If ListView1.ListItems(x).Checked = True Then
ListView1.ListItems.Item(x).ListSubItems(1).ForeColor = vbRed

For i = 1 To coluna
ListView1.ListItems.Item(x).ListSubItems(i).ForeColor = vbRed
Next i
Else
ListView1.ListItems.Item(x).ListSubItems(i).ForeColor = vbBlue
End If
Next x
End Sub




#487511 - 06/03/2019 12:05:06

OMAR2011
MONTES CLAROS
Cadast. em:Setembro/2011


Feche o tópico.
Não deixe ele aberto.



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por LUCS em 06/03/2019 20:12:52