小弟今天工作时遇到个问题:
我设定每间隔1秒钟向Listview控件追加一条记录,发现每追加一条记录,Listivew就闪烁一次。请教各位高手前辈:
怎么能避免lisview在更新时闪烁的毛病?我发新瑞星防火墙主界面的Listview就没有这样的毛病。
请哥哥姐姐们赐教了!
我设定每间隔1秒钟向Listview控件追加一条记录,发现每追加一条记录,Listivew就闪烁一次。请教各位高手前辈:
怎么能避免lisview在更新时闪烁的毛病?我发新瑞星防火墙主界面的Listview就没有这样的毛病。
请哥哥姐姐们赐教了!
lstview1.visible=false
.....
lstview1.visible=true
Private Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As LongPrivate Sub Form_Load()
Timer1.Interval = 1000 Dim itemx As ListItem
With ListView1
.ColumnHeaders.Add , , "序号"
.ColumnHeaders.Add , , "文件路径及名称"
.FullRowSelect = True
.GridLines = True
Set itemx = .ListItems.Add(, , "1")
itemx.SubItems(1) = "c:\db.txt"
.View = lvwReport
End With
End SubPrivate Sub Timer1_Timer()
LockWindowUpdate ListView1.hWnd
Dim itemx As ListItem
Set itemx = ListView1.ListItems.Add(, , "2")
itemx.SubItems(1) = "c:\1.bmp"
LockWindowUpdate 0
End Sub
http://www.mvps.org/vbvision/Sample_Projects.htm#Virtual_ListView_Demo
也谢谢qiqi5521(琪琪),谢谢!谢谢!!!谢谢谢谢谢谢!!!!
现在我用的是
ListView1.ListItems(ListView1.ListItems.Count).Selected = True
只是自动将焦点移到了最后一条增加的记录,可是当记录填满,出现滚动条后,滚动条就不能自动滚动并定位到最后一条记录了。麻烦各位高手指点江山啊!
ListView1.SetFocus
ListView1.ListItems(99).EnsureVisible
ListView1.ListItems(99).Selected = True
End Sub