C# 奇怪的.NET ListView行为

C# 奇怪的.NET ListView行为,c#,.net,listview,C#,.net,Listview,我试图了解这种行为:我在LargeIcon视图(System.Windows.Forms.View.LargeIcon)中的表单上有一个ListView 该行位于构造函数中: this.listView1.LargeImageList.ImageSize = new Size(32, 32); 然后双击调用此函数: private void listView1_DoubleClick(object sender, EventArgs e) { this.listView1.LargeI

我试图了解这种行为:我在LargeIcon视图(
System.Windows.Forms.View.LargeIcon
)中的表单上有一个ListView

该行位于构造函数中:

this.listView1.LargeImageList.ImageSize = new Size(32, 32);
然后双击调用此函数:

private void listView1_DoubleClick(object sender, EventArgs e)
{
    this.listView1.LargeImageList.ImageSize = new Size(64, 64); 
}
当我双击listview时,大小会如预期的那样改变,但是我的图标被拿走了,我只得到一个很大的空白。即使我将ImageIndex设置为以后使用,它仍然保持空白,并且我似乎无法再次显示它

我认为我做错了什么(尽管我猜.NET可能会被破坏)。我应该更改什么以使图标不会消失


(我在.NET2.0中)

我认为您遇到了MSDN()中描述的警告:

因为设置ImageSize属性 导致重新创建句柄,则 应在设置之前设置图像大小 图像属性


此外,依靠系统将图像大小从32x32调整到64x64自然会导致图像质量低下。

我想您有合适大小的图标吗?(64,64)?不,所有的图标都是(200200),但它首先适用于(32,32)是的,我不关心低质量的图像,因为我现在只是在制作原型。更重要的是,图像消失了,我无法让它们再次显示。看来,您所描述的警告确实是问题所在-这是否意味着每次我希望更改图标的大小时都必须重新创建图像集?