Remettre la sélection d'une ligne d'un ListView [Résolu]

Signaler
Messages postés
11
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
21 juin 2013
-
Messages postés
11
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
21 juin 2013
-
Bonjour à tous,
J'ai une ListView, quand on sélectionne une ligne (je mémorise son indice), je fais un travail en ouvrant d'autres fenêtres, et quand je reviens, je n'ai plus de sélection; comment la retrouver ?
N.B : ListView.SelectedIndices est ReadOnly .....
Merci
Marcel

6 réponses

Messages postés
11
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
21 juin 2013

Mayzz tu es super ... c'est ça qui me manquait ! je m'étais bloqué sur SelectedIndices ...
Avec mon
-> Dim k As Integer = Me.MaListView.SelectedIndices(0) ' indice de la ligne sélectionnée
de l'avant dernier message, il me suffisait d'écrire :
-> Me.MaListView.Item(k).Selected  = True ... et ça marche ...

Merci. Je marque la question comme résolue
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
28
Bonjour,

Travaille avec la propriété 'SelectedItems'

@+ Mayzz
                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <
Messages postés
11
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
21 juin 2013

Peux-tu être plus précis ....?
SelectedItems retourne les valeurs des items sélectionnés, moi, ce que je veux, c'est remettre en sélection (ligne à fond bleu si tu préfères) ce qui y était.
J'ai
   -     Dim Ligne As System.Windows.Forms.ListViewItem = Me.MaListView.SelectedItems(0) ' n-uple de la ligne sélectionnée

    -    Dim k As Integer = Me.MaListView.SelectedIndices(0) ' indice de la ligne sélectionnée

...... traitement sur les valeurs de la ligne sélectionnée "Ligne.SubItems(i).Text"

Je quitte ma fenêtre et j'y reviens, comment faire en sorte que j'y retrouve la ligne "k" sélectionnée (à fond bleu)
Merci

Marcel
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
28
Désolé en fait je crois que je n'ai pas bien compris, tu ne ferme pas ta fenêtre ? Tu ouvre juste des fenêtre modales qui te font perdre la sélection de ton listview ? Alors met la propriété HideSelection de ton listview sur 'false'.

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <
Messages postés
11
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
21 juin 2013

Merci Mayzz, ça avance.
- Si je ne change rien à ma ListView, ta stratégie est bonne, la sélection reste bien en place et visible (pas bleue mais grisée, mais bon ... on va pas fignoler à ce point)
- Par contre, si je dois modifier la ligne sélectionnée, et donc rafraîchir la List View, là pas moyen de remettre la ligne en sélection .... pour ça aussi t'as un truc ?

Marcel
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
28
Donc dans le cas ou tu as à recréer ta liste :

'Déclaré ds le publique du form :
Dim _si As ListView.SelectedIndexCollection = ListView1.SelectedIndices

'Déclaré ou tu veux
Call RefreshMyListView() 'Sub qui vide et recr‚e ton listview
For Each _i As Integer In _si
ListView1.Items(_i).Selected = True
Next

ATTENTION, cependant les éléments de ta liste devrons être au même nombre après le refresh de celle-ci.

Exemple, tu a 10 élément, le 10ème est sélectionné, tu recré ta liste avec 9 éléments cela ne fonctionnera pas.

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <