ImageListクラス

複数のImageを管理できます。

imageList = new ImageList();
imageList.ImageSize = new Size(64, 64);
imageList.ColorDepth = ColorDepth.Depth24Bit;

imageList.Images.Add(Image.FromFile(filename1));
imageList.Images.Add(Image.FromFile(filename2));

プロパティ

プロパティ 内容
ImageCollection Images イメージ リストのImageList.ImageCollection
ImageListStreamer ImageStream イメージ リストに関連付けられているImageListStreamer
Size ImageSize イメージ リスト内のイメージのサイズ。最大は256x256

既定は16×16で、追加したイメージはこのサイズにリサイズされる

ColorDepths ColorDepth イメージ リストの色深度

.NET Framework 1.1以降の既定はDepth8Bitで、追加するイメージの色数がこれより多い場合は減色される

Color TransparentColor 透明と見なされる色。既定はColor.Transparent
     

ImageSize

ImageSizeやColorDepthを設定するとイメージのコレクションが削除され、イメージのハンドルが再生成されます。よってこれらを設定してからイメージを追加します。Remarks - ImageList.ImageSize Property (System.Windows.Forms) | Microsoft Learn

イメージの追加後にImageSizeなど変更する必要があるときはコレクションに追加するイメージを別に保持しておき、変更後にそれを再度追加します。

Image[] images; // イメージを保持

...
imageList.Images.AddRange(images); // イメージを追加

...
imageList.ImageSize = new Size(width, height); // サイズを変更
int count = imageList.Images.Count;            // イメージの数が0となる
imageList.Images.AddRange(images);             // 保持していたイメージを再度追加

イベント

RecreateHandle

ハンドルが再生成されたときに発生します。この状況は、Imagesが設定された後にImageSizeやColorDepthが設定された場合などに起こります。

Microsoft Learnから検索