如何替换winforms ImageList
上的现有图像?
我试过了:
this.CoolPics.Images [ 2 ] = // new image
this.ListViewControl.SmallImageList = this.CoolPics;
然而,当我使用this.CoolPics.Images.Add
方法时,新图像不会像其他图像那样重新调整。
我做错了什么?
答案 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),看看是否有更好的效果。