duboue
Messages postés11Date d'inscriptionsamedi 23 octobre 2004StatutMembreDernière intervention21 juin 2013
-
7 juin 2009 à 18:22
duboue
Messages postés11Date d'inscriptionsamedi 23 octobre 2004StatutMembreDernière intervention21 juin 2013
-
8 juin 2009 à 11:07
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
duboue
Messages postés11Date d'inscriptionsamedi 23 octobre 2004StatutMembreDernière intervention21 juin 2013 7 juin 2009 à 21:05
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
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202030 7 juin 2009 à 21:20
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. <
duboue
Messages postés11Date d'inscriptionsamedi 23 octobre 2004StatutMembreDernière intervention21 juin 2013 8 juin 2009 à 08:41
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202030 8 juin 2009 à 09:16
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. <
duboue
Messages postés11Date d'inscriptionsamedi 23 octobre 2004StatutMembreDernière intervention21 juin 2013 8 juin 2009 à 11:07
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 ...