2009-10-13 70 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