查MSDN的ImageList后,才发现直接修改 ImageSize 会导致重新创建句柄。
解决办法一:
- 新建一个 ImageList 对象;
- 先对此对象的 ImageSize 调整大小;
- 再重新拷贝图像资源;
- 让需要使用的控件重新引用此新建 ImageList 对象;
ImageList imageL = new ImageList();
imageL.ImageSize = lbState.Size;
for (int i = 0; i < imageList1.Images.Count; i++)
{
imageL.Images.Add(imageList1.Images[i]);
}
lbState.ImageList = imageL;
解决办法二:
将图像资源写入资源文件中,创建新的 ImageList 时,重新创建 Images。