我正在处理一个类的编码问题。一个方面是实现基于图像的计数器(随着每一秒的流逝,图像发生变化,直到它在指定时间终止)。
我几乎完全明白了,除了按下按钮时,倒计时不会重置。我正在想办法添加一个if-then语句,上面写着"如果点击了猜测或新游戏按钮,然后将我的计数器重置为0,否则继续"
这是我的代码:
Private Sub btnGuess_Click(sender As Object, e As EventArgs) Handles btnGuess.Click
Private Sub btnNewGame_Click(sender As Object, e As EventArgs) Handles btnNewGame.Click
Private Sub tmrCountdown_Tick(myObject As Object, ByVal myEventArgs As EventArgs) Handles tmrCountdown.Tick
Static Counter As Integer = 0
Counter += 1
Select Case Counter
Case 0
picTimer.Visible = False
Case 1
picTimer.Visible = True
picTimer.Image = pic9.Image
Case 2
picTimer.Image = pic8.Image
Case 3
picTimer.Image = pic7.Image
解决方案是将计数器移到tmrCountdown_Tick
之外,理想情况下使其成为非静态成员。如:
Private Counter as Integer = 0
Private Sub btnGuess_Click(sender As Object, e As EventArgs) Handles btnGuess.Click
Counter = 0
End Sub
Private Sub btnNewGame_Click(sender As Object, e As EventArgs) Handles btnNewGame.Click
Counter = 0
End Sub
Private Sub tmrCountdown_Tick(myObject As Object, ByVal myEventArgs As EventArgs) Handles tmrCountdown.Tick
Counter += 1
...
End Sub
这样Counter
就可以在表单中的所有子系统和函数中访问。