• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

vbtipo

(Resolvido)Clicar na chechbox da Listview (VB6)

3 mensagens neste tópico

O meu problema é o seguinte:

Eu tenho uma listview que é carregada pelos dados vindos da base de dados mas esta não está ligada a ela.

Agora deparo com a seguinte situação:

1 - Quando mando ordenar o número de registo que está juntamente com a checkbox e clico nele ele muda a cor dos dados que essa linha tem.

Ex: 1,2,3 (faz bem)

2 - Quando faço outra ordenação qualquer e se a numeração ficar por ex: assim 1,3,2 (já faz errado).

Ao clicar na checkbox onde está o registo 3 ele vai alterar a côr onde está o registo 2, o mesmo acontece registo3 e se clicar no registo 1 já altera bem a côr.

Existe solução para este caso bicudo.

E o código onde me acontece isto é este:

Private Sub ListView_ItemCheck(Index As Integer, ByVal item As MSComctlLib.ListItem)

If ListView(Index).ListItems(Val(item)).Selected = True Then
   'ListView(Index).ListItems((Val(item)).Index).ForeColor = vbRed
   ListView(Index).ListItems(Val(item)).Selected = True
   ListView(Index).ListItems(Val(item)).ForeColor = vbRed
Else
   ListView(Index).ListItems(Val(item)).ForeColor = vbBlack
End If
End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mostra o código completo, para te poder entender.

Dica : Podes usar o Perseve na variavel para guardares o valor de cada iten

Até+

Programadorvb6

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Este é o código completo que tenho para pintar o registo de uma outra côr, ou seja, se a checkbox fôr seleccionada pinta de vermelho em senão pinta em preto.

Private Sub ListView_ItemCheck(Index As Integer, ByVal item As MSComctlLib.ListItem)

If ListView(Index).ListItems(Val(item)).Selected = True Then
   ListView(Index).ListItems(Val(item)).ForeColor = vbRed
Else
   ListView(Index).ListItems(Val(item)).ForeColor = vbBlack
End If
End Sub

E este daqui é o código que me vai ordenar os campos:

Private Sub ListView_ColumnClick(Index As Integer, ByVal ColumnHeader As MSComctlLib.ColumnHeader)
With ListView(Index)
    Static ilast As Integer, icur As Integer
    icur = ColumnHeader.Index - 1
    If icur = ilast Then
      If .SortOrder = 1 Then
         .SortOrder = 0
       Else
         .SortOrder = 1
       End If
     End If
    .SortKey = icur
    ilast = icur
End With
End Sub

Não tenho mais código relacionado à ordenação e ao checkbox.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora