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)です。その場合、1 つのステップでキー名を指定できます。

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 に答える