Selection dans une listView

Signaler
Messages postés
51
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
6 mars 2008
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
Bonjour

J'ai un probleme lorsque que je selctionne une ligne dan sma listeView.
A la premiere selection tout marche bien , et lorsque je veux selectionner autre chose alors la poum ca plante : System.outofRangeException

Pouvez vous m'aidez voici mon code SelectedIdexChanged:

private void photo_listview_SelectedIndexChanged(object sender, System.EventArgs e)
{
String namepho;
namepho = (String)photo_listview.SelectedItems[0].Text.ToString();
if(namepho.CompareTo("")!=0)
{
this.DessineMoi(namepho);
}

}//photo_listview_SelectedIndexChanged

3 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
C normal, fait un test sur la taille de SelectedItems avant de recup la valeur à l'indice 0
je m'explique :
SelectedIndexChanged est declenché sur tout changement de selection
hors quand tu selectionne autre chose, il y a une deselection de l'item precedent, puis une selection du nouveau, donc 2 fois l'event
or au moment de la deselection il n'y a plus rien de selectionné, donc SelectedIntems.Count == 0

Cocoricoooooooo !!!!
Messages postés
51
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
6 mars 2008

Merci , j'avais trouvé avant ta réponse mais ca fait toujours plaisir de voir des personnes qui repondent

Par contre j'ai un autre souci : j'initialise ma ListView avec deux colonnes.
nom et une date

lorque je selectionne le nom je voudrai que la ligne entiere se supprime: Voila ce que j'ai fait mais la date ne se supprime pas:

ListView.SelectedListViewItemCollection collec;
if(pholistmen_listView.Visible == true)
{
collec =pholistmen_listView.SelectedItems;
if(collec.Count>0)
{
ListViewItem monItem = collec[0];
string nomFichier = monItem.Text;
if(nomFichier.CompareTo("")!=0)
{
MessageBoxButtons buttons = MessageBoxButtons.OKCancel;
DialogResult result;
result = MessageBox.Show("Etes vous sur de vouloir supprimer cette photo ?","Suppression Photo",buttons);

//Un message apparait pour demander d'enregistrer ou non les changements.
if(result == DialogResult.OK)
{
this.deletePhoto(nomFichier);
pholistmen_listView.Items.Remove(monItem);
pholistmen_listView.Refresh();

}//if

}//if

Ensuite voila comment j'ai initialisé mes colonnes , mais je voudrai que le nom des colonnes apparaissents ????

ListViewItem lvi = new ListViewItem(drow["lien_photo"].ToString());
ListViewItem lv = new ListViewItem(drow["date_photo"].ToString());

// Add the list items to the ListView
pholistmen_listView.Items.Add(lvi);
pholistmen_listView.Items.Add(lv);
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
pour avoir le listview avec des colonnes il faut affecter la valeur details à la propriété view

PS : pense a utiliser la balise "code" (cf barre d'outils en dessous de la zone de saisie) pour mettre du code

Cocoricoooooooo !!!!