2017-04-08 18 views
1

listviewがアクティブでアイテムが含まれている間、イメージリストのイメージサイズを変更しようとしています。しかし、それは新しい追加された画像にのみ影響するようだ、既存の画像は空白になります。ここでListviewの既存のImagelistイメージサイズを変更するには

は私のコードです:

public Form1() 
{ 
    ... 
    imglst_ = new ImageList(); 
    imglst_.ImageSize = new Size(80, 80); 
    listView1.SmallImageList = imglst_; 
    listView1.LargeImageList = imglst_; 
    ... 
} 

//zoom in 
//This code only affect the new added image 
//the existing images will become blank 
private void toolStripZoomin_Click(object sender, EventArgs e) 
{ 
    int w = imglst_.ImageSize.Width; 
    int h = imglst_.ImageSize.Height; 

    w = (int)(w * 1.2); 
    h = (int)(h * 1.2); 

    imglst_.ImageSize = new Size(w, h); 
} 

答えて

0

ImageSize財産状態のドキュメント:前の画像コレクションに画像を追加するにImageSizeプロパティを設定

画像は、画像にリサイズされます指定されたサイズ。

ImageSizeプロパティを新しい値に設定すると、 イメージリストのHandleが再作成されます。

ImageSizeプロパティを設定すると、あなたが前に写真の プロパティを設定するImageSizeのを設定する必要があり、ハンドルが が再作成されますので。 のハンドルを作成した後で、 Imagesプロパティを設定した後に ColorDepthまたはImageSizeプロパティをコードに設定すると、 Imagesプロパティに設定されたイメージのコレクションが削除されます。

ですから、画像を追加した後ImageSizeを変更することはできません、あなたはImageSizeを設定した後ImageListに再び画像を追加する必要がありますので、彼らは、新たに指定したサイズで描画されます。