我的计数器加1,但没有正确更新

时间:2016-05-02 02:00:43

标签: vb.net

这是老虎机程序。我试图检测用户点击按钮的次数(旋转)。但我无法弄清楚为什么我的计数器只在我的clickLabel上加1?我确定这是一个简单的修复,但我正在画一个空白。

Public Class MainForm
Private Sub clickHereButton_Click(sender As Object, e As EventArgs) Handles clickHereButton.Click
    ' simulates a slot machine

    Dim randGen As New Random
    Dim leftIndex As Integer
    Dim centerIndex As Integer
    Dim rightIndex As Integer
    Dim counter As Integer = 1

    clickHereButton.Enabled = False
    For spins As Integer = 1 To 10
        leftIndex = randGen.Next(0, 6)
        leftPictureBox.Image = ImageList1.Images.Item(leftIndex)
        Me.Refresh()
        System.Threading.Thread.Sleep(50)

        centerIndex = randGen.Next(0, 6)
        centerPictureBox.Image = ImageList1.Images.Item(centerIndex)
        Me.Refresh()
        System.Threading.Thread.Sleep(50)

        rightIndex = randGen.Next(0, 6)
        rightPictureBox.Image = ImageList1.Images.Item(rightIndex)
        Me.Refresh()
        System.Threading.Thread.Sleep(50)
    Next spins

    If leftIndex = centerIndex AndAlso
        leftIndex = rightIndex Then
        MessageBox.Show("Congratulations!", "Winner", MessageBoxButtons.OK, MessageBoxIcon.Information)

    End If

    counter += 1
    clickLabel.Text = counter.ToString()


    clickHereButton.Enabled = True
    clickHereButton.Focus()


End Sub

Private Sub exitButton_Click(sender As Object, e As EventArgs) Handles exitButton.Click
    Me.Close()
End Sub
End Class

1 个答案:

答案 0 :(得分:3)

发生的事情是,每次点击按钮时,您总是将counter设置为1,因为它位于clickHereButton_Click内。因此,即使您正在递增它,在您的子开头,您仍然将其设置为1.

Dim counter As Integer = 1
Private Sub clickHereButton_Click(sender As Object, e As EventArgs) Handles clickHereButton.Click
...
End Sub