Synchronisation de 2 listview

00123456789 Messages postés 4 Date d'inscription lundi 15 septembre 2008 Statut Membre Dernière intervention 9 avril 2010 - 7 avril 2010 à 10:31
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 9 avril 2010 à 09:24
j'ai crée 2 ListView de 10 colonnes chacune l'une au desus de l'autre,
Comment syncrhoniser la selection de l'une sur l'autre?

ce code ne fonctionne pas :

Private Sub ListView1_Click()
Dim i, j As Integer
Dim LstItem As ListItem
    
    On Error Resume Next
    Set LstItem = ListView1.SelectedItem
    On Error GoTo 0
    
    If LstItem Is Nothing Then
        MsgBox "Aucune ligne n'est sélectionnée."
        GoTo fin:
        
        Else
        i = ListView1.SelectedItem.Index
              
                
        ListView1.ListItems(i).EnsureVisible
        ListView1.ListItems(i).Selected = True
        ListView1.SetFocus
        
        ListView2.ListItems(i).EnsureVisible
        ListView2.ListItems(i).Selected = True
        ListView2.SetFocus

        'MsgBox "Il y a au moins une ligne de sélectionnée."
    End If
fin:
End Sub



en fait l'une est selectionner ou l'autre, mais jamais les deux en même temps

Auriez-vous une solution?




aquecoucou

6 réponses

cnt Messages postés 219 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 20 décembre 2010 1
7 avril 2010 à 18:14
Bonjour
Il suffit de mettre à faux la propriété "HideSelection" des ListView, que ce soit à la conception ou au niveau exécution.

ListView1.HideSelection = False
ListView2.HideSelection = False
CNTJC
0
00123456789 Messages postés 4 Date d'inscription lundi 15 septembre 2008 Statut Membre Dernière intervention 9 avril 2010
8 avril 2010 à 09:18
Bonjour,

Effectivement c'est la bonne solution et Merciiiii
mais en complément, comment modifier la couleur du fond de la selection?

actuellement un gris clair sur la selection et un bleu nuit roi sur l'autre ListView.


Aquecoucou
0
cnt Messages postés 219 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 20 décembre 2010 1
8 avril 2010 à 19:42
Bonjour
Il n'est pas possible de changer la couleur simplement avec VB6, désolé.
Bonne suite

CNTJC
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
9 avril 2010 à 08:13
On Error Resume Next
Set LstItem = ListView1.SelectedItem
On Error GoTo 0

pas d'erreur generee ici...


ici:
Dim i, j As Integer

i est un Variant

par contre ici:
ListView1.SetFocus

une gestion d'erreur ne serait pas du luxe. Toujours prendre cette habitude avec SetFocus (crash si le controle est masque)

remarque, je ne sais pas trop pourquoi tu fais des SetFocus ici...


Ton code se resume alors en:
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
Dim oItem As ListItem
    If Not Nothing Is Item Then
        On Error Resume Next
        Set oItem = ListView2.ListItems(Item.Index)
        If Not Nothing Is oItem Then
            oItem.Selected = True
            oItem.EnsureVisible
        End If
    End If
End Sub





Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
00123456789 Messages postés 4 Date d'inscription lundi 15 septembre 2008 Statut Membre Dernière intervention 9 avril 2010
9 avril 2010 à 08:14
Bonjour,

Ok , domage, donc s'il n'y a pas d'autre solution je clos cette demande.
et la considere résolu.

Merci, pour cette réponce clair.

aquecoucou
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
9 avril 2010 à 09:24
faisable via de l'owner draw, mais relativement lourd pour un tel résultat

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
Rejoignez-nous