Suite ListView + ImageList

Résolu
Signaler
-
 Utilisateur anonyme -
au premier click tputest nickel... mais des le second, toutes les
images precedements affichées sont écrasées et remplacées par la
nouvelle (si on en selectionne qu'une) Dslé pas tres clair mon
explication


void BTAjouterClick(object sender, System.EventArgs e)

{

ImageList1 = new ImageList();

ImageList1.ImageSize = new Size(50,50);

for(int i=0;i<checkedListBox1.CheckedItems.Count;i++)

{



ImageList1.Images.Add(Image.FromFile(UrlEncours+"\"+checkedListBox1.CheckedItems[i]));



MessageBox.Show(UrlEncours+"\"+checkedListBox1.CheckedItems[i]);



listView1.Items.Add(checkedListBox1.CheckedItems[i].ToString()).ImageIndex=i;



}

listView1.LargeImageList = ImageList1;



Si qqun à une idée ....


U just need a fuck for Ur violence

5 réponses


// permet de stocker les index dans la ListView des images déjà affichées

private Hashtable _imageIndexes = new Hashtable();

ImageList1 = (listView1.LargeImageList != null && listView1.LargeImageList.Images.Count > 0)

? listView1.LargeImageList

: new ImageList();

ImageList1.ImageSize = new Size(50, 50);



for (int i = 0; i < checkedListBox1.CheckedItems.Count; i++)

{

// sert de clef pour l'index de l'image


string imageName = checkedListBox1.CheckedItems[i].ToString();



if (!_imageIndexes.ContainsKey(imageName))

{

int imageIndex = ImageList1.Images.Count;




ImageList1.Images.Add(Image.FromFile((UrlEncours+"\"+checkedListBox1.CheckedItems[i])));

listView1.Items.Add(imageName, imageIndex);

_imageIndexes.Add(imageName, imageIndex);

}

}



listView1.LargeImageList = ImageList1;

listView1.View = View.LargeIcon;



}

U just need a fuck for Ur violence
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
2
Je pense qu'il faudrait mieux que tu te créer une imagelist et tu mets status accessible partout sur ta form .

ImageList* status = new ImageList() ;
status->Images->Add(new Bitmap("c:\\statut\\a.ico")) ; // index 0
status->Images->Add(new Bitmap("c:\\statut\\b.ico")) ; // index 1

treeview->ImageList = status ;

si l'utilisateur checke un element du listview donc dans l'element after_checked je crois

si checké
listviewitem_selectionne->set_ImageIndex(0)
else
listviewitem_selectionne->set_ImageIndex(1)
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
2
c'est pas treeview mais listview : listview->ImageList = status ;

qu'esce que -> ? une nouveauté du framework 2.0 ? Je ne peut pa
utiliser cette solution car je rajoute des elements je ne remplace pas
les precedents

U just need a fuck for Ur violence
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
2 août 2014
98
Du C++ "managé" ou C++/CLI.
Remplace par '.'

/*
coq
MVP Visual C#
*/