0

我是 C# 的初学者。这是一个小问题。我想使用图像索引将图像添加到图像列表中。

  ilsLargeFlags  --> ImageList
  strFlagPath --> full file path
  strPetPath  --> only file name (gif image)

我尝试了以下代码:(不工作

 ilsLargeFlags.Images.Add(Image.FromFile(strFlagPath));
 ilsLargeFlags.Images.SetKeyName(8, strPetPath);

我在上面的代码中做错了什么?

imageList 中已经有 8 张图像。通过简单的用户界面添加(我不知道它是什么)

4

1 回答 1

5

你最好打电话ImageList.ImageCollection.Add(String, Image)。在这种情况下,您可以一步提供密钥名称:

ilsLargeFlags.Images.Add(strPetPath, Image.FromFile(strFlagPath));

更新

通过使用ImageList及其内部ImageListCollection,您将无法设置特定的数字索引(因此它不支持IndexOf()方法。相反,您使用某种自定义字符串键。如果您确实需要图像上的当前索引,则应该使用IndexOfKey()所需键将其添加到列表后使用该方法:

ilsLargeFlags.Images.Add(strPetPath, Image.FromFile(strFlagPath));
var index = ilsLargeFlags.Images.IndexOfKey(strPetPath);

现在可以通过使用该SetKeyName()方法和检索到的索引来更改键名,但是如果有人要从列表中删除图像,然后您会添加另一个图像,这可能会导致键名加倍。所以最好坚持一些键,并在你需要的时候通过调用来获取相应的索引IndexOfKey()

于 2012-10-22T07:59:06.967 回答