2009-10-13 53 views
1

我试图让我的头解决此问题:我在LargeIcon查看窗体上的一个ListView(System.Windows.Forms.View.LargeIcon奇怪的.NET 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); 
} 

当我双击列表视图,大小的变化符合市场预期,但我的图标被带走了,我只是得到一个双g空格。即使我将ImageIndex设置为以后使用,它仍然保持空白,我似乎无法再次显示它。

我假设我做错了什么(尽管我猜.NET可能被破坏)。我该如何改变图标不会消失?

(我在.NET 2.0)

+0

我认为你有一个适当大小的图标? (64,64)? – 2009-10-13 00:07:17

+0

不,所有的图标都是(200,200),但它在(32,32) – Smashery 2009-10-13 00:11:39

回答

2

我认为你正在运行到MSDN中描述的这个警告(http://msdn.microsoft.com/en-us/library/system.windows.forms.imagelist.imagesize.aspx):

由于设置 导致要重新手柄IMAGESIZE财产, 应在设置 Images属性之前设置ImageSize。

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

+0

的第一位起作用是的,我不担心低质量的图像,因为我现在只是原型制作。更重要的是,图像消失,我无法让他们再次显示。看来您所描述的警告确实是问题 - 这是否意味着我每次想要更改图标的大小时都必须重新创建一组图像? – Smashery 2009-10-13 00:18:34