2011-12-21 22 views
7

Mam kilka obrazów, które dodałem ręcznie do imageList Cotrol. Teraz potrzebuję usunąć obrazy thart z imageList w zależności od indeksu klucza i ustawić jako panel tła.Jak używać kontrolki imageList

jak mam zrobić to

+0

chcesz usunąć niektóre obrazy oparte na indeksie i dodać im tyłek tło twój panel? – Moonlight

+0

Tak, masz rację –

Odpowiedz

14

Images, że dodaje się lista obrazów są dodawane do ImageList.ImageCollection, więc jest to zbiór wpisać można użyć większości metod gromadzenia .

Użyj właściwości Obrazy, aby dodać, usunąć i uzyskać dostęp do obrazu, który ma być wyświetlany w tle panelu. Add(key,image)
Remove()
RemoveAt()
RemoveByKey()

Sprawdź przykład w dokumentacji ImageList Class do zrozumienia, że ​​jak pragmatycznie korzystać ze wszystkich tych metod.

dodać zdjęcie:

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

Usuń obraz z kolekcji:

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

dostęp do obrazów, uzyskać obraz z imagecollection

panel1.BackgroundImage = imageList1.Images[0]; 

lub

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

Próbuję użyć panel1.BackgroundImage = imageList1.Images [0]; ale obraz nie jest wyświetlany prawidłowo, czy muszę użyć innej metody wzdłuż tej? –

+0

Sprawdź właściwość panelu "BackgroundImageLayout" dla ustawień widoku obrazu. Lista obrazów może przechowywać obraz maksymalnie 256x256 pikseli. –

+0

dziękuję, działa świetnie –

1

Użyj Images property kontroli ImageList.

Obiekt, który zwraca, zawiera wszystkie metody potrzebne do manipulowania obrazami na liście, w tym metody Add i Remove.

można znaleźć instrukcje dotyczące ustawiania tła w Panel kontrolą tutaj: How to: Set the Background of a Windows Forms Panel

+0

Próbuję użyć tej metody, ale zwraca void imageList1.Images.RemoveByKey ("nameOfImage") –

+0

Tak, ma zwrócić 'void'. To jest sygnatura metody. Zobacz dokumentację (http://msdn.microsoft.com/en-us/library/system.windows.forms.imagelist.imagecollection.removebykey.aspx). Nie zwraca sukcesu ani porażki. –

0

Używam imagelist w widoku listy.

Powiedzmy, że mam trzy obrazy w imagelist i chcę usunąć 2 obraz w nim.

użyłem kodu

imagelist.Images.RemoveAt(2); 

kod usuwa 2nd obraz ale po tym 3 obraz jest bot widoczne chociaż jest tam

+0

mój prob lem jest imagelist nie jest automatyczne odświeżanie – neerajMAX