00123456789
Messages postés4Date d'inscriptionlundi 15 septembre 2008StatutMembreDernière intervention 9 avril 2010
-
7 avril 2010 à 10:31
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 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
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202171 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