这是刚才问的:
check1是用来判断时钟控件的, 如果打钩 那么 时钟控件为true 反之为false 
而text1是来定义时钟控件的时间的,还有button控件若干个. 
如果定义时钟控件的时间为5秒,那么例如我有4个button,5秒之后触发button1,10秒之后触发button2,15秒之后触发button3,20秒之后触发button4,25秒之后再从头开始触发button1,然后依次5秒之后触发button2,button3,button4.以此循环, 请问 这样的程序该怎么写? 我鬼主意很多,- -, 现在我想在这个问题的前提下再多加4个按妞。分别对应上面的那个4个按妞。1对应5,2对应6,3对应7,4对应8。
按妞5,6,7,8是来选择要触发哪个按妞的. 如果我按了5,6,7,8然后选择时间为3秒,并且打勾,那么3秒之后触发1,6秒之后触发2,9秒之后触发3,12秒之后触发4,   关键来了!!!! 如果我选择了5,7,8 那么要怎么跳过6? 让程序3秒之后触发1,6秒之后触发7,9秒之后触发8然后依次循环?

解决方案 »

  1.   

    用(當前秒+1) Mod 5 的CASE語句就OK了。
      

  2.   

    '另加控件数组Check2(0)到Check2(3)
    Private Sub Check1_Click()
    If Check1.Value = 1 And Val(Text1.Text) > 0 Then
    Timer1.Interval = Val(Text1.Text) * 1000
    Timer1.Enabled = True
    Else
    Timer1.Enabled = False
    End If
    End SubPrivate Sub Command1_Click(Index As Integer)Select Case Index
    Case 0
    Form1.Caption = "触发button1"
    Case 1
    Form1.Caption = "触发button2"
    Case 2
    Form1.Caption = "触发button3"
    Case 3
    Form1.Caption = "触发button4"
    End Select
    End SubPrivate Sub Form_Load()
    Timer1.Enabled = False
    Text1.Text = ""
    Check1.Value = 0
    End Sub
    Private Sub Timer1_Timer()
    Static i As Integer
    If i > 3 Then i = 0 '跳过
    If Check2(i) = 0 Then i = i + 1
    Call Command1_Click(i)
    i = i + 1
    End Sub
      

  3.   

    假定你的 button1-button4 是 Command1 控件数组,button5-button8 是 Check1 控件数组
    Option ExplicitPrivate m_Ticks As Long'重新开始
    Private Sub cmdReset_Click()
        Timer1.Interval = Val(Text1) * 10000
        Timer1.Enabled = True
        m_Ticks = -1
    End SubPrivate Sub Timer1_Timer()
        m_Ticks = (m_Ticks + 1) Mod 4
        
        If Check1(m_Ticks).Value Then Call Command1_Click(m_Ticks)
    End Sub