如何使用图像列表控件

9
我有一些手动添加到图像列表控件中的图片。 现在根据关键索引需要从图像列表中删除这些图片,并将其设置为面板背景。 应该如何操作?

1
你想根据它们的索引删除一些图像,并将它们作为面板的背景添加吗? - Moonlight
3个回答

17

Images添加到了ImageList.ImageCollection中,因此它是一种集合类型,您可以使用大多数集合方法。

使用Images属性来添加、删除和访问要在面板背景中显示的图像。 Add(key,image)
Remove()
RemoveAt()
RemoveByKey()

请查看ImageList Class文档中的示例,以了解如何实用地使用所有这些方法。

添加图像:

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

从集合中删除图片:

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

要访问图像,请从图像集中获取图像。

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

我尝试使用panel1.BackgroundImage = imageList1.Images[0]; 但是图片显示不正确,我需要使用其他方法吗? - NIlesh Lanke
检查面板的 BackgroundImageLayout 属性以获取图像视图设置。图像列表可以存储最大256x256像素的图像。 - Niranjan Singh

1

我尝试使用这种方法,但它返回一个空的图像列表:imageList1.Images.RemoveByKey("nameOfImage")。 - NIlesh Lanke
是的,它应该返回 void。那是这个方法的签名。请参阅文档。它不会返回成功或失败。 - Cody Gray

0

我在ListView中使用ImageList。

假设我有三个图像在ImageList中,想要删除其中的2个图像。

我使用了以下代码:

    imagelist.Images.RemoveAt(2);

代码正在删除第二张图片,但之后第三张图片虽然存在,但不可见。


我的问题是 imagelist 没有自动刷新。 - neerajMAX

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接