求助,怎样才能得到和设置LISTBOX里的滚动条的位置,就像滚动条控件的VALUE一样。

解决方案 »

  1.   

    可能得用api吧,这个功能有什么用吗?能不能具体说说?或许有别的办法能达到类似的效果。
      

  2.   

    自动定位到一个记录,并且放在LISTBOX的中间
    如果直接用。LISTINDEX的画,每次都在最下面,乱难看
      

  3.   

    Option Explicit
    Private Const SB_VERT = 1
    Private Declare Function GetScrollPos Lib "user32" (ByVal hwnd As Long, ByVal nBar As Long) As Long
    Private Declare Function SetScrollPos Lib "user32" (ByVal hwnd As Long, ByVal nBar As Long, ByVal nPos As Long, ByVal bRedraw As Long) As Long
    Private Sub Command1_Click() '获得滚动条位置
        Dim i As Long
        i = GetScrollPos(List1.hwnd, SB_VERT)
        MsgBox i
    End SubPrivate Sub Command2_Click() '设置滚动条位置,注意listbox中的item并不会随之滚动
         Dim i As Long
        i = SetScrollPos(List1.hwnd, SB_VERT, 100&, 1&)
    End SubPrivate Sub Form_Load()
        Dim i As Long
        For i = 1 To 300
            List1.AddItem "line " + CStr(i)
        Next
    End Sub
      

  4.   

    解决了!用SENDMESSAGE配上LB_GETTOPINDEX消息
    非常谢谢大家的帮忙。
      

  5.   

    //解决了!用SENDMESSAGE配上LB_GETTOPINDEX消息用listbox的 TopIndex也可
      

  6.   

    用List1.List(index)=10
    这样行吗?(个人建议)
      

  7.   

    VALUE改变时,记录应跟着移动。