是否可以为ObjectListView子项使用嵌入式资源图像

时间:2014-08-21 02:46:28

标签: vb.net image objectlistview

我似乎无法找到关于此的任何信息,但有人知道是否可以在ObjectListView SubItem中使用my.resources中的嵌入图像?

我目前正在使用存储在ImageList控件中的图像,但由于某种原因,我发现这些图像已损坏并开始显示缺陷。如果我像以前使用普通的listview控件那样从嵌入式资源中提取它们,我就没有问题。

我正在使用ImageGetter例程返回ImageList的键引用,但是,最终我想从嵌入式资源中提取它们。我也想为动画GIF参考做这个。

如果有人知道某种方式,请你帮忙。示例代码将不胜感激。 感谢

1 个答案:

答案 0 :(得分:1)

您可以从ImageGetter

返回三种不同的类型
  1. int - int值将用作图像列表的索引
  2. String - 字符串值将用作图像列表中的键
  3. 图像 - 将直接绘制图像(仅在OwnerDrawn模式下)
  4. 所以3号选项可能就是你想要的。请注意,您必须设置objectListView1.OwnerDraw = true

    如果这不起作用,可以选择在运行时将图像加载到ImageList中。有example here

    this.mainColumn.ImageGetter = delegate(object row) {
        String key = this.GetImageKey(row);
        if (!this.listView.LargeImageList.Images.ContainsKey(key)) {
            Image smallImage = this.GetSmallImageFromStorage(key);
            Image largeImage = this.GetLargeImageFromStorage(key);
            this.listView.SmallImageList.Images.Add(key, smallImage);
            this.listView.LargeImageList.Images.Add(key, largeImage);
        }
        return key;
    };
    
      

    如果尚未提取图像,则会动态提取图像。您将需要编写GetImageKey(),GetSmallImageFromStorage()和GetLargeImageFromStorage()方法。它们的名称可能会有所不同,具体取决于您确定如何根据哪个模型对象显示哪个图像。