这个问题本该放到控件类去,但我今天进不去,CSDN总提示:文本内容中发现无效字符。只好到这里了。
我在触摸屏程序中使用TREEVIEW,节点多时出现竖向滚动条,我以前试过在触摸屏中用手指控制滚动条的上下单击很费劲,想在窗体上放置两“上”、“下”按钮,例如当点击“下”时就用代码控制treeview的竖向滚动条向下滚动一次,向上亦然。
怎么实现呢?

解决方案 »

  1.   

    SendMessage 可以,不过要获得滚动条得句柄很难
      

  2.   

    或者向treeview
    sendkeys "{down}" 
    sendkeys "{up}"
      

  3.   

    sendmessage:Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongConst WM_VSCROLL = &H115Private Const SB_LINEDOWN = 1Private Const SB_LINEUP = 0Private Const SB_PAGEDOWN = 3Private Const SB_PAGEUP = 2Private Const SB_ENDSCROLL = 8Private Const SB_BOTTOM = 7Private Const SB_TOP = 6
    Private Sub Command1_Click()
    SendMessage TreeView1.hWnd, WM_VSCROLL, SB_LINEUP, 5& 'upword 5 lines
    End SubPrivate Sub Command2_Click()
    SendMessage TreeView1.hWnd, WM_VSCROLL, SB_LINEDOWN, 5& ' downword 5 lines
    End SubPrivate Sub Command3_Click()
    SendMessage TreeView1.hWnd, WM_VSCROLL, SB_PAGEUP, 1& ' 1 pageupEnd SubPrivate Sub Command4_Click()
    SendMessage TreeView1.hWnd, WM_VSCROLL, SB_PAGEDOWN, 1& '1 pagedownEnd SubPrivate Sub Command5_Click()
    SendMessage TreeView1.hWnd, WM_VSCROLL, SB_TOP, 0& ' to topEnd SubPrivate Sub Command6_Click()
    SendMessage TreeView1.hWnd, WM_VSCROLL, SB_BOTTOM, 0& ' to bottomEnd SubPrivate Sub Form_Load()
    For i = 1 To 1000
    TreeView1.Nodes.Add , , , i
    Next
    End Sub