2017-06-29 124 views
0

我正在寫一個VB/Windows窗體中的工具,它將刪除遠程計算機上的用戶配置文件。除了顯示計算機名稱和已刪除的配置文件之外,它非常適用。ObjectListView - 添加新行

當我嘗試ObjectListView時,它顯示第一行的信息,並覆蓋每臺計算機上的信息,並在每臺計算機上刪除每個配置文件。這裏是我有問題的代碼部分....

Public Class PC 
    Public Property Computer_Name As String 
    Public Property Profile_Name As String 
End Class 

-

For Each objProfile In colProfiles 
    Dim dtmLastUseTime = CDate(Mid(objProfile.LastUseTime, 5, 2) & "/" & 
Mid(objProfile.LastUseTime, 7, 2) & "/" & VB.Left(objProfile.LastUseTime, 4) _ 
& " " & Mid(objProfile.LastUseTime, 9, 2) & ":" & 
Mid(objProfile.LastUseTime, 11, 2) & ":" & Mid(objProfile.LastUseTime, 
13, 2)) 
    If DateDiff("d", dtmLastUseTime, d1) > intMaxProfileAge Then 
     usrPath = objProfile.localpath 
     rowInfo2 = usrPath 

     Dim LvItm As New PC With {.Computer_Name = rowInfo1, .Profile_Name = rowInfo2} 
     Dim LvLst As New List(Of PC) 
     LvLst.Add(LvItm) 
     ObjectListView1.SetObjects(LvLst) 

     objProfile.Delete_ 
    End If 
Next 
+0

連一行都沒有?因爲在你的代碼中,你爲每個迭代創建一個新的當前項目列表。 – dovid

+0

在添加新項目之前,SetObjects()必須清除列表。 –

回答

0

嘗試替換此:

Dim LvLst As New List(Of PC) 
LvLst.Add(LvItm) 
ObjectListView1.SetObjects(LvLst) 

在:

ObjectListView1.AddObject(LvLst) 

移動這一行

Dim LvLst As New List(Of PC) 

STRAT for-each循環之前,以及next行之後該行

ObjectListView1.SetObjects(LvLst) 

+0

它增加了同一行上每次迭代的條目。我想要做的是將每個迭代添加到新行。我會嘗試你的建議,並讓你知道發生了什麼。 –