Bonjour,
J'ai un contrôle ListView et j'aimerais détecter lorsque l'utilisateur change de ligne, le problème c'est qu'on peut changer de ligne soit avec la souris soit avec le clavier.
Est-ce qu'il existe une action du genre ItemChange ?
Bonjour,
J'ai un contrôle ListView et j'aimerais détecter lorsque l'utilisateur change de ligne, le problème c'est qu'on peut changer de ligne soit avec la souris soit avec le clavier.
Est-ce qu'il existe une action du genre ItemChange ?
L'événement click répond à toute sélection (par souris ou par les flêches) !!!
Tu aurais pu essayer (ce que je viens de faire moi-même !!!) , non, avant de poser cette question ...
Actuellement j'utilise lvwMaListe_Click() et quand je me déplace avec les flèches cet événement N'est pas activé (en tout cas sur mon ordinateur avec mon office 2003). C'est justement ça qui m'a poussé à poser cette question.
Mais en tout cas merci d'avoir apporté une réponse
Re,
Excuse moi (j'ai écrit Click au lieu de ItemClick ...
répond aux flêches
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub ListView1_ItemClick(ByVal Item As ComctlLib.ListItem) MsgBox ListView1.SelectedItem End Sub
Et ???
J'attendais ta réaction (saine), du genre : "et que puis-je maintenant faire pour savoir sur quelle ligne je suis (si je dois par exemple en extraire les colonnes autres que la première ??"
Et tu as bien raison car la chose est loin d'être évidente avec les listview
Alors ?
On y va :
Voilà, ami ... tu as tout ce qu'il te faut, maintenant ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Private Sub ListView1_ItemClick(ByVal Item As ComctlLib.ListItem) Dim toto As Integer toto = ListView1.ListItems(Item.Index).Index 'oui, je sais, je sais ... ce n'est pas évident ... MsgBox "tu viens de sélectionner la ligne N° " & toto & " qui dit" & vbCrLf & _ "en sa première colonne " & ListView1.ListItems(toto).Text & vbCrLf & _ "en sa 2ème colonne " & ListView1.ListItems(toto).SubItems(1) ' etc....... End Sub
Merci ucfoutu,
En effet ça marche. Pour la détection de l'élément je l'avais déjà fait, mais j'y avais passé un peu de temps (je me servais du tutorial de Silkroad sur le ListView comme de livre de chevet )
Bon ...
Alors, s'il te plait (hier j'avais envie de plaisanter) :
remplace donc la formule "alambiquée" de toto (dans mon message précédent) par la formule toute simple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part toto = Item.Index
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager