我的TreeView控件的节点信息是查询数据库得到的(就两层),当我在程序中使用TreeView1.ListItems.Clear方法时有时速度很慢,为什么?,有没有其它类似速度快的方法呢?请各位指点!!谢了

解决方案 »

  1.   

    把VISIBLE设为FALSE  再CLEAR  完成后再设成TRUE,数据量大时你会发现快很多。
      

  2.   

    Public Const TV_FIRST  As Long = &H1100
    Public Const TVM_GETNEXTITEM As Long = (TV_FIRST + 10)
    Public Const TVM_DELETEITEM  As Long = (TV_FIRST + 1)
    Public Const TVGN_ROOT As Long = &H0
    Public Const WM_SETREDRAW As Long = &HB
    Public Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    '
    ' Very fast Clearing of treeview control - Place this where required
    'Private Sub ClearTreeView(ByVal tvHwnd As Long)
    '
       Dim lNodeHandle As Long
    '
    ' Turn off redrawing on the Treeview for more speed improvements
    '
        SendMessageLong tvHwnd, WM_SETREDRAW, False, 0    Do
            lNodeHandle = SendMessageLong  (tvHwnd, TVM_GETNEXTITEM, TVGN_ROOT, 0)
             If lNodeHandle > 0 Then
                    SendMessageLong  tvHwnd, TVM_DELETEITEM, 0, lNodeHandle
             Else
                    Exit Do
             End If
        Loop    SendMessageLong tvHwnd, WM_SETREDRAW, True, 0
    End Sub--------------
    具说是快速清除treeview的代码,试一下