LISTVIEW comment obtenir l index de l element selectionné et l element meme

Résolu
amirirn1 Messages postés 45 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 16 juin 2006 - 2 mars 2005 à 14:55
NelsonIsen Messages postés 3 Date d'inscription mercredi 29 décembre 2010 Statut Membre Dernière intervention 1 juin 2011 - 1 juin 2011 à 11:59
Bonjour,
j ai un listview et j aimerai en cliquant sur un element recuperer la position de l element dans un string ou un int
ensuite recuperer l element dans un string.
Merci

9 réponses

TheSaib Messages postés 2368 Date d'inscription mardi 17 avril 2001 Statut Modérateur Dernière intervention 26 décembre 2007 23
2 mars 2005 à 15:24
((ListViewItem)listView1.SelectedItems[0]).Index) ;

::|The S@ib|::
MVP C#.NET
3
amirirn1 Messages postés 45 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 16 juin 2006
2 mars 2005 à 15:32
Merci
0
TheSaib Messages postés 2368 Date d'inscription mardi 17 avril 2001 Statut Modérateur Dernière intervention 26 décembre 2007 23
2 mars 2005 à 15:36
au plaisir

::|The S@ib|::
MVP C#.NET
0
NelsonIsen Messages postés 3 Date d'inscription mercredi 29 décembre 2010 Statut Membre Dernière intervention 1 juin 2011
1 juin 2011 à 11:07
je ne comprends pas bien pourquoi nous sommes obligé de caster en ListViewItem.
Pourquoi avec les listView on ne peut pas faire quelque chose du genre : listView1.subitems[0].selectedIndex ?
0

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

Posez votre question
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 38
1 juin 2011 à 11:15
Bonjour,

(Salut TheSaib... toujours MVP ?)

pour récupérer l'index sélectionné dans une ListView :
var index = uneListView.SelectedIndex;





Sébastien FERRAND
Ingénieur Concepteur Senior
Microsoft Visual C# MVP 2004 - 2009
Blog Photo
0
NelsonIsen Messages postés 3 Date d'inscription mercredi 29 décembre 2010 Statut Membre Dernière intervention 1 juin 2011
1 juin 2011 à 11:32
Bonjour sebmafate,

lorsque je fais :
Console.WriteLine(listView_vols.SelectedIndex);


j'obtiens à la compilation :
erreur CS1061: 'System.Windows.Forms.ListView' ne contient pas une définition pour 'SelectedIndex' et aucune méthode d'extension 'SelectedIndex' acceptant un premier argument de type 'System.Windows.Forms.ListView' n'a été trouvée (une directive using ou une référence d'assembly est-elle manquante ?)

Console.WriteLine(listView_vols.FocusedItem.Index);

Ce code parait intéressant mais ça me renvoi l'index prédent suivit du bon, car l'element dans la liste n'est pas encore desselectionné.
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 38
1 juin 2011 à 11:56
au temps pour moi... je me suis trompé avec la version WebForms

if (uneListView.SelectedItems.Count > 0) {
   var index = uneListView.SelectedItems[0].Index;
}


ou bien, créer une méthode d'extension :

public static class ListViewExtensionMethods {
   public Int32 GetSelectedIndex(this ListView listView) {
      if (listView.SelectedItems.Count > 0) {
         return listView.SelectedItems[0].Index;
      }
      return -1;
   }
}


et on l'utilise comme ceci :
Console.WriteLine(listView_vols.GetSelectedIndex());



Sébastien FERRAND
Ingénieur Concepteur Senior
Microsoft Visual C# MVP 2004 - 2009
Blog Photo
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 38
1 juin 2011 à 11:57
ooops... une erreur dans mon code

public static class ListViewExtensionMethods {
   public static Int32 GetSelectedIndex(this ListView listView) {
      if (listView.SelectedItems.Count > 0) {
         return listView.SelectedItems[0].Index;
      }
      return -1;
   }
}


Sébastien FERRAND
Ingénieur Concepteur Senior
Microsoft Visual C# MVP 2004 - 2009
Blog Photo
0
NelsonIsen Messages postés 3 Date d'inscription mercredi 29 décembre 2010 Statut Membre Dernière intervention 1 juin 2011
1 juin 2011 à 11:59
Super merci :D
0