2012-03-01 24 views
0

我正在使用ListView的大圖標視圖來查看每個插入圖像的數據庫插入。 創建新插入時,我清除整個ListView並使用以下代碼添加所有插入。只有在第一次運行時才能完美運行。 第二次(一個新的插件添加後),我得到的所有的項目,但缺少的圖像(他們中的一些人失蹤,其中一些炒)C# - 在ListView的大圖標視圖中我無法正確更新圖標

private void updateListView() 
{ 
    myListView.Clear(); 
    myListView.Items.Clear(); 
    myConnection.connect(); 
    List<String> myValues = myConnection.getMyValues(); 
    List<String> myImages = myConnection.getMyImages(); 
    ImageList myImageList = new ImageList(); 
    myImageList.ImageSize = new Size(256, 256); 
    myImageList.ColorDepth = ColorDepth.Depth32Bit; 
    for (int i = 0; i < myValues.Count; i++) 
    { 
     myListView.Items.Add(myValues[i]); 
     myListView.Items[i].ImageIndex = i; 
     myImageList.Images.Add(Image.FromFile(myImages[i])); 
    } 
    myListView.LargeImageList = myImageList; 
    myConnection.close(); 
    myListView.Refresh(); 
} 

我與調試檢查,值/文件路徑是正確的。

+0

我很失落,什麼是churchListView? – Steve 2012-03-01 23:41:51

+0

對不起churchListView。這是myListView。我糾正了它。 – 2012-03-02 00:37:03

回答

0

我發現它: 問題是,我有ListView的Sort屬性。 這意味着ListView會自動對它的Items進行排序。 因此,在這些行:

myListView.Items.Add(myValues[i]); 
myListView.Items[i].ImageIndex = i; 

的項目,並將其最後一個項目(i)的附加在最後的圖像(I) 在這些行新添加的產品自動按字母順序排序之間後,所以它不是 索引在我了,但別的東西。所以圖像被分配給一個隨機項目。 相反,我這樣做:

ListViewItem lastAddedListViewItem = myListView.Items.Add(myValues[i]); 
lastAddedListViewItem.ImageIndex = i; 

和它的工作

0

首先嚐試關聯的myListView你添加新項目之前:

myListView.LargeImageList = myImageList; , 

然後添加項...

myImageList.Images.Add(Image.FromFile(myImages[i])); 

還什麼churchListView .. ???你在哪裏宣佈它..如果是這樣的代碼示例,以適應churchListView或適當的ListView變量...