如何替换winforms ImageList上的现有图像?

时间:2009-06-23 03:45:51

标签: c# .net winforms imagelist

如何替换winforms ImageList上的现有图像?

我试过了:

this.CoolPics.Images [ 2 ] = // new image
this.ListViewControl.SmallImageList = this.CoolPics;

然而,当我使用this.CoolPics.Images.Add方法时,新图像不会像其他图像那样重新调整。

我做错了什么?

3 个答案:

答案 0 :(得分:1)

我知道这已经过时了,但这就是我解决问题的方法。看起来图像列表在分配时不会调整图像大小(即使它在使用Add()函数时也是如此)。所以基本上,你需要在分配之前手动调整图像大小。

Image img; //used to load new image from disk
Bitmap bmp = new Bitmap(160, 120); //canvas where the new image will be drawn/resized
Graphics graph = Graphics.FromImage(bmp); //used to draw/resize the new image

img = new Bitmap(fileDialog.FileNames[0]); //load new image from disk

graph.DrawImage(img, new Rectangle(0, 0, 160, 120)); //resize new image to proper size

imgList.Images[index] = bmp; //assign the new resized image to the list (overwrites the old image)

答案 1 :(得分:0)

代码尝试后

listView1.Refresh();

答案 2 :(得分:0)

我之前遇到过这种情况,如果我没记错,赋值运算符有这种行为,但Imagelist.Images.Add(myImage)做了正确的事。

尝试更改代码以执行.Add(myImage),看看是否有更好的效果。