它始终显示第一个条件。就像它点击了两次我希望a1和a2可见,而且标签7和标签8很快......继承我的代码。任何帮助表示赞赏
Private Sub cmdLap_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdLap.Click
Dim a As Integer
a = a + 1
If a = 1 Then
a1.Visible = True
Label7.Text = Label1.Text & " hour(s) " & Label2.Text & " minute(s) " & Label3.Text & " second(s) "
ElseIf a = 2 Then
a2.Visible = True
Label8.Text = Label1.Text & " hour(s) " & Label2.Text & " minute(s) " & Label3.Text & " second(s) "
ElseIf a = 3 Then
a3.Visible = True
Label9.Text = Label1.Text & " hour(s) " & Label2.Text & " minute(s) " & Label3.Text & " second(s) "
End If
End Sub**
答案 0 :(得分:0)
您的变量a
是声明Sub的本地变量。
这意味着:每次调用此子(用户单击按钮)时,都会在本地堆栈上创建a
的新副本,其值将从零开始。
您需要在Sub。
之外声明该变量Dim a As Integer
Private Sub cmdLap_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdLap.Click
......
End Sub
当然,现在你遇到了相反的问题。变量保持其先前的值,因此,在4次单击后,它达到值4,并且不再与您的测试匹配。
顺便说一下,不要对变量和控件使用这样的描述性名称。尝试使用更有意义的名称来帮助您在将来六个月后进行编码工作,您将回顾这段代码。
答案 1 :(得分:0)
a
是函数的本地函数,因此每次单击时它为0,递增为1,并且您得到该条件。
将其移至类级属性或字段。