2014-10-07 37 views
0

「ShowGroups」失敗我試圖從「喬納斯」提供的another thread解決方案,它得到我一個TopItem索引,但它不能按預期工作,我假設因爲我的團隊。我的列表視圖是文件夾和文件,我的組是文件夾,Word文檔,Excel文檔,PowerPoint文檔,Acrobat文檔,然後是其他所有內容。.NET:ListView的TopItem屬性失敗,並在

有40個文件夾和索引去從0到39

下一組是Word和前幾個項目指標爲52,57,60,61,64,73這將導致我相信這些索引被分配以便它們被寫入到列表視圖中。

我滾動,以便我的第二個單詞項是頂部項目(索引57)。我發佈我的刷新(確認索引是57)並更新列表視圖。

更新結束後,在設置topitem之前,listview顯示爲空白。當前最上面的項目是0,名稱是第一個文件夾。我設置了首選項,頂部索引顯示爲386或大致列表中的第85項。

代碼來獲取和機頂盒項目

mMyItem = RealtopItem() 

If Not ExpTree1.SelectedItem Is Nothing Then 
    lv1.Update() 
End If 

lv1.TopItem = mMyItem 

RealTopItem代碼

Public Function RealtopItem() As ListViewItem 

Dim i As Integer = 0 

While (i < lv1.Items.Count AndAlso Not lv1.ClientRectangle.Contains(lv1.Items(i).Bounds)) 
    i = i + 1 
End While 

Return lv1.Items(i) 

端功能 即使設置topitem兩次,如一些人所建議的,是行不通的。我也試過無效而不是更新。

此外,即使頂部項目是一個文件夾(索引匹配實際項目數量),它也不起作用。

回答

0

這不完全是答案,但它是一種解決方案,適用於我想要的方式。

基本上,我沒有必要重建listview。沒有重建,滾動位置以及選定的項目保持不變。我更新的項目並不反映它們的新名稱,因此在重命名函數中,我將文本的名稱設置爲新文件名的內容。

這工作正如我需要它。我不必重建列表視圖,因爲我沒有添加任何文件。我需要爲我刪除的項目創建一個解決方案。