如何在列表框中循环使用图像

本文关键字:循环 图像 列表 | 更新日期: 2023-09-27 17:49:30

我已经创建了一个图像列表框,我想调整它们的大小。我已经得到了方法,但我似乎无法循环遍历列表框中的项目:

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

我得到这个错误"无法转换类型为system的对象"。"system.drawing.image"类型字符串。什么好主意吗?

早些时候,我也使用了一个图像投射在列表框选中的项目:

Picturebox1.Image = (Image)listbox.selecteditem;

我记得它可以工作,但它不再工作了。我想我记错代码了,还有别的办法吗?

如何在列表框中循环使用图像

你是ListBox.Items。添加操作错了。添加Image对象,而不是图像的字符串路径或url或Image. tostring()。

我现在明白了。你没有做listbox . items . add (Image),否则你会在listbox中看到"垃圾",所以答案是创建一个包装器对象:
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);