Au sujet du défilement du ListView.

Tanaka56 Messages postés 124 Date d'inscription samedi 8 avril 2006 Statut Membre Dernière intervention 29 janvier 2009 - 14 juil. 2006 à 14:47
Tanaka56 Messages postés 124 Date d'inscription samedi 8 avril 2006 Statut Membre Dernière intervention 29 janvier 2009 - 15 juil. 2006 à 12:28
Bonjour.

Est il possible d'avoir au fur et à mesure du remplissage d'un ListView la dernière ligne remplie au milieu du ListView?
Merci pour vos réponses.
Cordialement.

5 réponses

Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
14 juil. 2006 à 17:47
Samut
Au milieu, je ne crois pas mais visible au fur et à mesure des ajouts, ça peut se faire comme ça si la propriété MultiSelect = False :

With ListView1
.ListItems.Add , , TaValeur
.ListItems(.ListItems.Count).Selected = True
End With
0
Tanaka56 Messages postés 124 Date d'inscription samedi 8 avril 2006 Statut Membre Dernière intervention 29 janvier 2009
15 juil. 2006 à 11:01
Salut.
J'ai essayé mais cela ne fonctionne pas. Il doit certainement manquer quelque chose !
Pour plus de précisions, j'ajoute à mon ListView des informations supplémentaires comme ci-dessous, car, j'ai déjà mes deux premières colonnes remplies.

With ListView1


.ListItems(.ListItems.Count).Selected = True
ListView1.ListItems(NumLigne).ListSubItems(2) = DateReception(NumLigne) End With
0
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
15 juil. 2006 à 11:51
Tu as raison. C'est la propriété EnsureVisible qu'il faut utiliser.
Un petit exemple :

Dim i As Integer

Private Sub Form_Load()
' Définition minimale de la listview
With ListView1
.ColumnHeaders.Add , , "Colonne1"
.ColumnHeaders.Add , , "Colonne2"
.View = lvwReport
End With
End Sub

Private Sub Command1_Click()
Dim ItemX As ListItem
i = i + 1
With ListView1
'ajout d'une ligne
Set ItemX = .ListItems.Add(, , "valeur1-" & i)
ItemX.SubItems(1) = "valeur2-" & i
ItemX.SubItems(2) = "valeur3-" & i
'rendre la ligne visible
.ListItems(.ListItems.Count).EnsureVisible
End With
Set ItemX = Nothing
End Sub

Si tu as des questions je reste à l'écoute.
0
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
15 juil. 2006 à 11:53
Oups, j'ai oubié un
.ColumnHeaders.Add , , "Colonne3"
dans la définition de la listview mais je pense que tu auras rectifié de toi-même.
0

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

Posez votre question
Tanaka56 Messages postés 124 Date d'inscription samedi 8 avril 2006 Statut Membre Dernière intervention 29 janvier 2009
15 juil. 2006 à 12:28
Merci encore.
Par contre, j'ai fait une rectification.
J'ai mis le numéro de ligne "NumLigne" qui est au fur et à mesure incrémenté et non pas le numéro du compteur final.
Puisque j'ai déjà rempli mon ListView avec des informations dans les deux premières colonnes. Sinon je me retrouve au lancement du programme avec la dernière ligne visible.
Cordialement.

.ListItems(NumLigne).EnsureVisible
0
Rejoignez-nous