下面是模拟输出Text1.Text中内容的代码,Private Sub Timer1_Timer()'间隔为2秒
SendKeys Text1.Text
End Sub
但是Text1只有一条数据,每次输出都是同一条,
我想用List1列表框控件来实现多条不同输出,
List1列表内容如下:你好
谢谢
再见
.
.
.
.
N+1条我想实现的是,计时器2秒触发一次,第1模拟输出List1列表的第1内容"你好",第2模拟输出List1列表的第2内容"谢谢",第3拟输出List1列表的第3容"再见",直到把List1列表的内容都模拟输出一遍后又从第1条继续循环模拟输出,直到用户停止计时器为止,代码要怎么写?谢谢了

解决方案 »

  1.   

    Public i As BytePrivate Sub Form_Load()
    List1.AddItem "123"
    List1.AddItem "1234"
    List1.AddItem "456"
    List1.AddItem "4567"
    List1.AddItem "789"
    List1.AddItem "7890"
    End SubPrivate Sub Timer1_Timer()
    i = i + 1
    SendKeys List1.List(i - 1)
    If i > List1.ListCount Then
        i = 0
        Timer1.Enabled = False
    End If
    End Sub
      

  2.   

    如果要循环,把这句不要就是
    “    Timer1.Enabled = False”
      

  3.   

    加上Timer1.Enabled = False,程序只能输出空的字符串,就停止了,去掉Timer1.Enabled = False的时候,i的值分别是0.1.2.3.4.5.6......,而到了0的时候,程序输出的是空的字符,而程序列表里根本没有这个语句,如何把i=0的值给去掉,這代码不完善,代码该怎么改?谢谢
      

  4.   

    Private Sub Timer1_Timer()
    i = i + 1
    If i > List1.ListCount Then i = 1
    SendKeys List1.List(i - 1)
    End Sub
      

  5.   

    那改成这样吧
    Option ExplicitPublic i As Byte
    Private Sub Form_Load()
    List1.AddItem "123"
    List1.AddItem "1234"
    List1.AddItem "456"
    List1.AddItem "4567"
    List1.AddItem "789"
    List1.AddItem "7890"
    End SubPrivate Sub Timer1_Timer()
        SendKeys List1.List(i)
        i = i + 1
        If i >= List1.ListCount Then
            i = 0
        '    Timer1.Enabled = False
        End If
    End Sub
      

  6.   

    为什么定义成这样Public i As Byte。
    private i as integer
      

  7.   

    理论:
    a(i)="内容"sub timer()
    1.
        for i=1 to i
            sendkeys a(i)
        next
    goto 1
    end sub
    以上只是理论,代码并不严谨!如果间隔时间不够你处理循环内的代码程序将会出现问题!,所以要注意啊
    我感觉把代码写在类或者模块里是不是可以避免这个问题呢……,没试验过,家里机器不好……
      

  8.   

    理论: 
    a(i)="内容" sub timer() 
    1. 
        for i=1 to i
            如果你知道内容位置的话可以在这里强制定义I的值,如I=7。这样不就是循环一条了吗。
            sendkeys a(i) 
        next 
    goto 1 
    end sub 
      

  9.   

    谢谢你的解答,其实我想是实现的不是列表全部的内容当成一条来循环,所以不知道你加循环是什么意思,呵呵,还有就是goto 1不加还不提示什么,加了就出现标签未定义,我想要的功能经过你的提示我自己想出了代码了,是  SendKeys List1.List(List1.ListIndex),而你给我代码我又可以刚好用到下个功能上,谢谢了.....