如果找不到图像密钥,如何设置ListViewItem的默认图像

时间:2013-05-15 11:31:46

标签: c# winforms

当无法找到ListViewItem的ImageKey时,是否有内置的方法来使用默认图像?

我有一个ImageList:

  • car.png
  • house.png
  • 为Default.png

和ListViewItem

var item = new ListViewItem("Item1");
item.ImageKey = "computer.png";

默认情况下,ListView在这种情况下不显示图像。是否有可能显示“default.png”

1 个答案:

答案 0 :(得分:2)

这应该这样做(尽管可能有更优雅的方式)。您可能需要调整它以适合填充ListView的方式。基本代码是这样的:

string imageKey = "DefaultKey";
string someOtherKey = "SomeOtherKey";
if (lv.SmallImageList.Images.ContainsKey("SomeOtherKey"))
{
    imageKey = someOtherKey;
}
var item = new ListViewItem("Item1");
item.ImageKey = imageKey;

请注意,根据您填充列表的方式,可能最好将其拉出到返回相应键的函数中:

string getImageKey(string candidateKey)
{
    if (lvAzureDirectory.SmallImageList.Images.ContainsKey(candidateKey))
    {
        return candidateKey;
    }
    else
    {
        return "DefaultKey";
    }
}