2011-12-21 9 views
7

Ho alcune immagini che ho aggiunto a imageList Cotrol manualmente. Ora ho bisogno di rimuovere le immagini thart da imageList a seconda dell'indice chiave e impostare come sfondo del pannello.Come usare imageList Control

come dovrei farlo

+0

si desidera rimuovere alcune immagini in base al loro indice e aggiungerli sfondo culo il tuo pannello? – Moonlight

+0

sì hai ragione –

risposta

14

Images che è stato aggiunto nella lista immagine vengono aggiunti alla ImageList.ImageCollection, quindi è raccolta digita quindi è possibile utilizzare la maggior parte dei metodi di raccolta .

Utilizzare la proprietà Immagini per aggiungere, rimuovere e accedere all'immagine da visualizzare sullo sfondo del pannello. Add(key,image)
Remove()
RemoveAt()
RemoveByKey()

Controllare l'esempio sulla documentazione ImageList Class per capire che il modo pragmatico utilizzare tutti questi metodi.

Aggiungi immagine:

imageList1.Images.Add("pic1", Image.FromFile("c:\\mypic.jpg")); 

Rimuovere Immagine da collezione:

imageList1.Images.RemoveAt(listBox1.SelectedIndex); 
imageList1.Images..RemoveByKey("pic1"); 

Per accedere alle immagini, ottenere l'immagine dalla imagecollection

panel1.BackgroundImage = imageList1.Images[0]; 

o

panel1.BackgroundImage = imageList1.Images["pic1"]; 
+0

Provo a utilizzare panel1.BackgroundImage = imageList1.Images [0]; ma l'immagine non è mostrata correttamente, devo usare qualche altro metodo lungo questo? –

+0

la proprietà 'BackgroundImageLayout' del pannello di controllo per le impostazioni di visualizzazione delle immagini .. l'elenco di immagini può memorizzare l'immagine massima di 256x256 pixel. –

+0

grazie mille, funziona benissimo –

1

Utilizzare il Images property del controllo ImageList.

L'oggetto ImageList.ImageCollection restituito fornisce tutti i metodi necessari per manipolare le immagini nell'elenco, inclusi i metodi Add e Remove.

potete trovare le istruzioni su come impostare lo sfondo di un controllo Panel qui: How to: Set the Background of a Windows Forms Panel

+0

provo a usare questo metodo ma restituisce void imageList1.Images.RemoveByKey ("nameOfImage") –

+0

Sì, si suppone che restituisca 'void'. Questa è la firma del metodo. Vedere la [documentazione] (http://msdn.microsoft.com/en-us/library/system.windows.forms.imagelist.imagecollection.removebykey.aspx). Non restituisce successo o fallimento. –

0

sto usando imagelist nella visualizzazione elenco.

diciamo che ho tre immagini in imagelist e voglio eliminare 2 immagini in essa.

ho usato il codice

imagelist.Images.RemoveAt(2); 

codice è l'eliminazione seconda immagine, ma dopo che l'immagine 3 è bot visibile anche se è lì

+0

il mio problema è imagelist non è auto-rinfrescante – neerajMAX