你可以比较一下下面2个例子,经过我多次测试,后者的速度比为:1:2以上,也就是说,前者1秒里面可以显示2000个,后者1秒里面可以显示4000个以上。Option ExplicitPrivate Declare Function GetTickCount Lib "kernel32" () As Long Private m_lngTimeElapsed As LongPrivate Sub cmdStandard_Click()
End Sub Private Sub cmdAcceleration_Click() Dim o_lngItems As Long Dim o_liItem As ListItem
m_lngTimeElapsed = GetTickCount
With lvTest .Visible = False
With .ColumnHeaders .Clear .Add , , "Index" .Add , , "Name" .Add , , "Sex" .Add , , "Money" End With
With .ListItems .Clear
For o_lngItems = 1 To 2000
Set o_liItem = .Add(, , CStr(o_lngItems))
With o_liItem .SubItems(1) = "item" & CStr(o_lngItems) .SubItems(2) = IIf(o_lngItems Mod 2, "Male", "Female") .SubItems(3) = Rnd(1) * o_lngItems End With Next End With
.Visible = True End With
MsgBox "耗时:" & (GetTickCount - m_lngTimeElapsed) & " 毫秒"End Sub
Private m_lngTimeElapsed As LongPrivate Sub cmdStandard_Click()
Dim o_lngItems As Long
m_lngTimeElapsed = GetTickCount
lvTest.ColumnHeaders.Clear
lvTest.ColumnHeaders.Add , , "Index"
lvTest.ColumnHeaders.Add , , "Name"
lvTest.ColumnHeaders.Add , , "Sex"
lvTest.ColumnHeaders.Add , , "Money"
lvTest.ListItems.Clear
For o_lngItems = 1 To 2000
lvTest.ListItems.Add , , CStr(o_lngItems)
lvTest.ListItems(o_lngItems).SubItems(1) = "item" & CStr(o_lngItems)
lvTest.ListItems(o_lngItems).SubItems(2) = IIf(o_lngItems Mod 2, "Male", "Female")
lvTest.ListItems(o_lngItems).SubItems(3) = Rnd(1) * o_lngItems
Next
MsgBox "耗时:" & (GetTickCount - m_lngTimeElapsed) & " 毫秒"
End Sub
Private Sub cmdAcceleration_Click() Dim o_lngItems As Long
Dim o_liItem As ListItem
m_lngTimeElapsed = GetTickCount
With lvTest
.Visible = False
With .ColumnHeaders
.Clear
.Add , , "Index"
.Add , , "Name"
.Add , , "Sex"
.Add , , "Money"
End With
With .ListItems
.Clear
For o_lngItems = 1 To 2000
Set o_liItem = .Add(, , CStr(o_lngItems))
With o_liItem
.SubItems(1) = "item" & CStr(o_lngItems)
.SubItems(2) = IIf(o_lngItems Mod 2, "Male", "Female")
.SubItems(3) = Rnd(1) * o_lngItems
End With
Next
End With
.Visible = True
End With
MsgBox "耗时:" & (GetTickCount - m_lngTimeElapsed) & " 毫秒"End Sub
http://caotang.myetang.com/temp/listviewspeedtest.zip
看来今天我走运了,不出门都遇贵人,呵呵
有qq吗?
我的是37963795
以后多交流,不过我刚毕业,经验不多,多指点我啊。