2016-05-02 56 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