複数の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や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); // 保持していたイメージを再度追加
ハンドルが再生成されたときに発生します。この状況は、Imagesが設定された後にImageSizeやColorDepthが設定された場合などに起こります。