2011-12-21 12 views
7

Tengo algunas imágenes que agregué a imageList Cotrol manualmente. Ahora necesito eliminar las imágenes thart de imageList dependiendo del índice de clave y establecer como fondo de panel.Cómo usar imageList Control

¿Cómo debo hacerlo

+0

que desea eliminar algunas imágenes en función de su índice y les añade el fondo culo de tu panel? – Moonlight

+0

sí, usted tiene razón –

Respuesta

14

Images que agregó en Lista de imágenes se añaden a la ImageList.ImageCollection, por lo que es recogida escribe a continuación, puede utilizar la mayoría de los métodos de recolección .

Utilice la propiedad Imágenes para agregar, eliminar y acceder a la imagen para mostrarla en el fondo del panel. Add(key,image)
Remove()
RemoveAt()
RemoveByKey()

Compruebe el ejemplo de la documentación ImageList Class a entender que la forma pragmática utilizar todos estos métodos.

Agregar imagen:

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

Remover Imagen de la colección:

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

Para acceder a las imágenes, obtener una imagen de la imagecollection

panel1.BackgroundImage = imageList1.Images[0]; 

o

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

Intento usar panel1.BackgroundImage = imageList1.Images [0]; pero la imagen no se muestra correctamente, hacer lo que necesito hacer uso de algún otro método a lo largo de éste? –

+0

verifique la propiedad 'BackgroundImageLayout' del panel para ver la configuración de la vista de imagen .. la lista de imágenes puede almacenar una imagen máxima de 256x256 píxeles. –

+0

muchas gracias, funciona muy bien –

1

Uso del Images property del control ImageList.

El objeto ImageList.ImageCollection que devuelve proporciona todos los métodos que necesita para manipular las imágenes de la lista, incluidos los métodos Add y Remove.

Puede encontrar instrucciones sobre cómo configurar el fondo de un control Panel aquí: How to: Set the Background of a Windows Forms Panel

+0

trato de usar este método, pero devuelve void imageList1.Images.RemoveByKey ("nameOfImage") –

+0

Sí, se supone que debe devolver 'void'. Esa es la firma del método. Consulte la [documentación] (http://msdn.microsoft.com/en-us/library/system.windows.forms.imagelist.imagecollection.removebykey.aspx). No devuelve el éxito o el fracaso. –

0

Estoy usando la lista de imágenes en la vista de lista.

supongamos que tengo tres imágenes en la lista de imágenes y quiero eliminar 2 imágenes en ella.

i utiliza código

imagelist.Images.RemoveAt(2); 

código está eliminando segunda imagen, pero después de que la imagen 3 es bot visibles a pesar de que está allí

+0

mi problema es que la lista de imágenes no es auto refrescante – neerajMAX

Cuestiones relacionadas