2016-05-02 23 views
0

这是一个老虎机程序。我试图检测用户点击一个按钮(旋转)的次数。但我不明白为什么我的柜台只添加1到我的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 
+0

'昏暗的计数器作为整数= 1'本地的按钮单击事件中声明,所以它在1总是初始化。如果你希望它的值增加,它需要在按钮点击事件之外的'Public Class MainForm'下的Form级别声明... OR ...另一个选项,你可以在点击事件中的本地声明为'静态计数器As Integer = 1',所以它保持它的价值。 –

+0

Doh!谢谢蔡斯,菜鸟的错误。得到它的工作。 – Billyin4c

回答

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