可以点击设置订单按钮

Set order buttons can be clicked

我在表单上有三个按钮,我想根据由 3 位数字组成的不断变化的随机数来控制点击它们的顺序
只要随机数不变我就可以控制点击顺序
由于代码现在没有生成随机数
我只是把随机数改成test
我明白当点击按钮时需要的是一个有效的测试使用数组不太幸运

如何动态关联数字在String中的位置来控制按钮的点击顺序?

Private Sub btnAdd_Click()
  ck = 0
  GetPos
  tbOne.Text = S1
End Sub

Private Sub GetPos()
  Dim Y As Integer
  S1 = "132" 'Random Number

  For Y = 1 To Len(S1)
    pos = Mid(S1, Y, 1) 'Position of Value in S1 the Random Number
    lbOne.AddItem pos & vbNewLine
  Next
End Sub

Private Sub btnOne_Click()
  ck = ck + 1
  If Mid(S1, 1, 1) = "1" And ck = 3 Then
    btnOne.BackColor = vbYellow
  Else
  ck = 4

  If btnOne.BackColor = vbYellow Then
    Exit Sub
  End If
        
  btnOne.BackColor = vbRed

  If btnOne.BackColor <> vbYellow Then
    btnOne.Enabled = False
  End If
  End If
  End Sub

Private Sub btnTwo_Click()
  ck = ck + 1
  If Mid(S1, 2, 1) = "3" And ck = 1 Then
    btnTwo.BackColor = vbYellow
  Else
  ck = 4 ' Prevents other buttons from being Yellow

  If btnTwo.BackColor = vbYellow Then
    Exit Sub
  End If
   
  btnTwo.BackColor = vbRed
  If btnTwo.BackColor <> vbYellow Then
    btnTwo.Enabled = False
  End If
  End If
  End Sub

Private Sub btnThree_Click()
  ck = ck + 1
  If Mid(S1, 3, 1) = "2" And ck = 2 Then
    btnThree.BackColor = vbYellow
  Else
  ck = 4

  If btnThree.BackColor = vbYellow Then
    Exit Sub
  End If

  btnThree.BackColor = vbRed
  If btnThree.BackColor <> vbYellow Then
    btnThree.Enabled = False
  End If
  End If
  End Sub

此代码可找到您需要的所有信息
我仍在尝试在相应的按钮点击事件中实现这些值

Private Sub btnAdd_Click()
S1 = "132"
S2 = "321"
    FindPlace
    tbOne.Text = S1
End Sub

Private Sub FindPlace()

Dim Y As Integer
Dim i As Integer

tbOne.Text = S1

lbOne.Clear

For Y = 1 To Len(S2)
pos = Mid(S1, 4 - Y, 1)
S3 = Mid(S2, Y, 1)

    For i = 1 To Len(S1)
        If Mid(S1, i, 1) = S3 Then
            lbOne.AddItem "Press " & i & " the value " & pos & " is in Position " & Mid(S1, i, 1)
        End If
    Next
Next
End Sub

这似乎可以满足您的需求:

Private Sub btnOne_Click()
   ck = ck + 1
  
   If ck = Mid(S1, 1, 1) Then
      btnOne.BackColor = vbYellow
   Else
      btnOne.BackColor = vbRed
      btnOne.Enabled = False
   End If
End Sub

Private Sub btnTwo_Click()
   ck = ck + 1
  
   If ck = Mid(S1, 2, 1) Then
      btnTwo.BackColor = vbYellow
   Else
      btnTwo.BackColor = vbRed
      btnTwo.Enabled = False
   End If
End Sub

Private Sub btnThree_Click()
   ck = ck + 1
  
   If ck = Mid(S1, 3, 1) Then
      btnThree.BackColor = vbYellow
   Else
      btnThree.BackColor = vbRed
      btnThree.Enabled = False
   End If
End Sub