Utilizing Before/AfterLabelUpdate and Sleep api makes it less flickering. Give it the try:
Code:
Option Explicit
Private Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Form_Load()
Me.AutoRedraw = False
'add column headers here
ListView1.ListItems.Add , , "Item1"
ListView1.ListItems.Add , , "Item2"
ListView1.ListItems.Add , , "Item3"
End Sub
Private Sub Command1_Click()
Timer1.Interval = 10
End Sub
Private Sub ListView1_AfterLabelEdit(Cancel As Integer, NewString As String)
LockWindowUpdate False
End Sub
Private Sub ListView1_BeforeLabelEdit(Cancel As Integer)
LockWindowUpdate ListView1.hWnd
End Sub
Private Sub Timer1_Timer()
Static i As Long
LockWindowUpdate ListView1.hWnd
i = i + 1
ListView1.ListItems(2).SubItems(1) = "Value " & i
Sleep 10
LockWindowUpdate False
End Sub