各位大侠:
         请问在导入数据时,我想让用来显示数据的ctlist控件自动往下翻,以显示那些在后面的数据,使ctlist控件不停的更新显示新导入的数据,我应该怎么做啊?教教我!

解决方案 »

  1.   

    ctlist是指listbox控件,还是listview?
      

  2.   

    ctlist控件提供了hwnd属性没有?如果提供了这个属性接口,可以用sendmessage给它发送WM_VSCROLL 消息,我这里没有ctlist控件,下面的例子是针对listbox的,你修改以下看看能否使用:
    Option Explicit
    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 SB_LINEDOWN = 1
    Private Const SB_LINEUP = 0
    Private Const WM_VSCROLL = &H115Private Sub Command1_Click()
        '向下滚动一行,如果你的ctlist控件有句柄的话,将List1.hwnd换成他的句柄
        SendMessage List1.hwnd, WM_VSCROLL, SB_LINEDOWN, ByVal 0&
    End SubPrivate Sub Command2_Click()
        '向上滚动一行,如果你的ctlist控件有句柄的话,将List1.hwnd换成他的句柄
        SendMessage List1.hwnd, WM_VSCROLL, SB_LINEUP, ByVal 0&
    End SubPrivate Sub Form_Load()
        Dim i As Long
        For i = 1 To 1000
            List1.AddItem "line " + CStr(i)
        Next
    End Sub
      

  3.   

    不需要像 rainstormmaster(暴风雨 v2.0) 说的那么烦吧
    设置ctlist.selectindex=刚加入的index
      

  4.   

    看看这个控件是否有autoscroll自动滚动属性啊?
      

  5.   

    Private Sub Command1_Click()
    Dim i As Integer
    For i = 1 To 10000
    List1.AddItem i
    If i > 10 Then List1.TopIndex = i - 10
    Next
    End Sub
      

  6.   

    //我的意思是我把鼠标点在那里,它会一直不停的往上走,而不是点一下上去一下如果你想要滚动效果的话,用个timer控件就行了:
    Option Explicit
    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 SB_LINEDOWN = 1
    Private Const SB_LINEUP = 0
    Private Const SB_BOTTOM = 7
    Private Const SB_TOP = 6
    Private Const WM_VSCROLL = &H115
    Dim Flag As Long
    Private Sub Command1_Click()
        Timer1.Enabled = False
        '先滚动到顶部
        SendMessage List1.hwnd, WM_VSCROLL, SB_TOP, ByVal 0&
        Timer1.Enabled = True
        '设置滚动方向为向下
        Flag = SB_LINEDOWN
    End SubPrivate Sub Command2_Click()
        Timer1.Enabled = False
        '先滚动到底部
        SendMessage List1.hwnd, WM_VSCROLL, SB_BOTTOM, ByVal 0&
        Timer1.Enabled = True
        '设置滚动方向为向上
        Flag = SB_LINEUP
    End SubPrivate Sub Form_Load()
        Dim i As Long
        For i = 1 To 1000
            List1.AddItem "line " + CStr(i)
        Next
        Timer1.Enabled = False
        Timer1.Interval = 20
    End Sub
    Private Sub Timer1_Timer()
        SendMessage List1.hwnd, WM_VSCROLL, Flag, ByVal 0&
    End Sub
      

  7.   

    这样可以吗:
    sub test()
     List1.Clear
     Dim i As Long
     For i = 1 To 1000
       List1.AddItem i
       List1.ListIndex = List1.NewIndex
     Next
    end sub
      

  8.   

    暴风雨,你写的2个程序我都试了还是不行。是不是ctlist和list真的有很大的差别啊?
      

  9.   

    //是不是ctlist和list真的有很大的差别啊我没用过ctlist,不过就我的印象而言它应该和listview控件比较接近至于不成功,我不知道是什么原因,能给个控件的下载地址吗?
      

  10.   

    学习学习
    ----------------------------zhuzhugrit.tyvhost.com
      

  11.   

    是不是可以考虑mousemove事件啊
      

  12.   

    ctlist既然是第三方控件,那么我们怎么会知道里面有什么属性,支持什么消息?
      

  13.   

    ctlist哪里有的下载,不了解啊