改变 ListIndex而不发生 Click 事件 
在修改 Combo 或 Listview 的ListIndex 时, 会发生 Click 事件, 下面的函数可以阻止该事件。
声明:
Private Declare Function SendMessage Lib _
    "user32" Alias "SendMessageA" (ByVal _
    hWnd As Long, ByVal wMsg As Long, ByVal _
    wParam As Long, lParam As Any) As Long
Const CB_GETCURSEL = &H147
Const CB_SETCURSEL = &H14E
Const LB_SETCURSEL = &H186
Const LB_GETCURSEL = &H188
函数:
Public Function SetListIndex(lst As Control, _
    ByVal NewIndex As Long) As Long    If TypeOf lst Is ListBox Then
        Call SendMessage(lst.hWnd, _
            LB_SETCURSEL, NewIndex, 0&)
        SetListIndex = SendMessage(lst.hWnd, _
            LB_GETCURSEL, NewIndex, 0&)
    ElseIf TypeOf lst Is ComboBox Then
        Call SendMessage(lst.hWnd, _
            CB_SETCURSEL, NewIndex, 0&)
        SetListIndex = SendMessage(lst.hWnd, _
            CB_GETCURSEL, NewIndex, 0&)
    End If
End Function