C#如何在列表框中循环浏览图像

时间:2011-04-09 21:44:30

标签: c# image casting listboxitem

我已经创建了一个图像列表框,我想调整所有图像的大小。我已经解决了这个方法,但我似乎无法遍历列表框中的项目:

foreach (Image I in listbox1.items)
{
     Resize(I, x, y)
}

我收到此错误“无法将system.string类型的对象强制转换为类型system.drawing.image”。任何想法?

之前我还在列表框选择项目上使用了图像转换:

Picturebox1.Image = (Image)listbox.selecteditem;

我记得它有效,但它不会再有了。我假设我记得代码错了,有什么替代方案吗?

1 个答案:

答案 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);