我已经创建了一个图像列表框,我想调整所有图像的大小。我已经解决了这个方法,但我似乎无法遍历列表框中的项目:
foreach (Image I in listbox1.items)
{
Resize(I, x, y)
}
我收到此错误“无法将system.string类型的对象强制转换为类型system.drawing.image”。任何想法?
之前我还在列表框选择项目上使用了图像转换:
Picturebox1.Image = (Image)listbox.selecteditem;
我记得它有效,但它不会再有了。我假设我记得代码错了,有什么替代方案吗?
答案 0 :(得分:0)
你是ListBox.Items.Add'ing错了。添加Image对象,而不是字符串路径到图像或URL或Image.ToString()。
我现在得到了..你没有做ListBox.Items.Add(Image),因为否则你会在列表框中看到'garbage',所以答案是创建一个包装器对象:
class ImageWrapper
{
public Image image;
public string displayName;
public override string ToString()
{
return displayName;
}
}
然后做
var iw = new ImageWrapper();
iw.image = <yourImage>;
iw.displayName = "Text for listbox here";
ListBox.Items.Add(iw);