Private Sub Form_Load()
    Dim i As Integer
    For i = 1 To 200
        TreeView1.Nodes.Add , , "N" & i, "Node" & i
    Next i
    TreeView1.OLEDragMode = ccOLEDragAutomatic
    TreeView1.OLEDropMode = ccOLEDropManual
End SubPrivate Sub TreeView1_OLEDragOver(Data As MSComctlLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single, State As Integer)
    Dim NodeX As Node
    Set NodeX = TreeView1.HitTest(x, y)
    If Not NodeX Is Nothing Then
        NodeX.EnsureVisible
    End If
End Sub

解决方案 »

  1.   

    可以告诉我改变treeview的滚动条的方法是什么吗?
      

  2.   

    谢谢大哥,可这样好像依然不能通过程序使treeview的滚动条滚动,是原来不可见的结点可见呀。
      

  3.   

    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
    Private Const WM_VSCROLL = &H115
    Private Const SB_LINEUP = 0
    Private Const SB_LINEDOWN = 1
    Private Const SB_PAGEUP = 2
    Private Const SB_PAGEDOWN = 3'向上滚一行
    Private Sub Command1_Click()
        SendMessage TreeView1.hwnd, WM_VSCROLL, SB_LINEUP, ByVal 0
    End Sub'向下滚一行
    Private Sub Command2_Click()
        SendMessage TreeView1.hwnd, WM_VSCROLL, SB_LINEDOWN, ByVal 0
    End Sub'向上滚一页
    Private Sub Command3_Click()
        SendMessage TreeView1.hwnd, WM_VSCROLL, SB_PAGEUP, ByVal 0
    End Sub'向下滚一页
    Private Sub Command4_Click()
        SendMessage TreeView1.hwnd, WM_VSCROLL, SB_PAGEDOWN, ByVal 0
    End Sub
      

  4.   

    junwhj() 大虾:
      第二个方法很好,小第十分感谢,送分。
      呵呵,有机会请多指教!