使用按钮在一个图片框中更改两个图像(VB.NET)

时间:2013-04-04 18:42:03

标签: vb.net if-statement picturebox

我一直在尝试更改图片框中的图像。它可以工作,如果我想用一个图像更改它,但我无法让它更改为另一个图像。当我点击按钮时,它应该在两个图像之间交替。

这是我的代码:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)  Handles Button1.Click

    Dim num As Boolean

    If num = False Then

        PictureBox3.Image = My.Resources.Beep
        num = True

    Else

        PictureBox3.Image = My.Resources.Skateboard
        num = False

    End If


End Sub

我一直想弄清楚为什么它长时间不起作用,任何帮助都会受到赞赏。

2 个答案:

答案 0 :(得分:1)

变量num是方法的本地变量,因此您可以按照自己的喜好进行更改,但每次调用此代码时,都会重新创建变量num并将其初始值设置为False。登记/> 从您将其设置为方法

的退出点,它将为True

要解决此问题,您需要将其声明为Shared或在类全局级别的过程之外声明它

共享选项

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)  Handles Button1.Click

    Dim Shared num As Boolean
    If num = False Then
        PictureBox3.Image = My.Resources.Beep
        num = True
    Else
        PictureBox3.Image = My.Resources.Skateboard
        num = False
    End If
End Sub

班级选项

Dim num As Boolean

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)  Handles Button1.Click
.....
End Sub

答案 1 :(得分:1)

你的num变量在方法中,所以当你调用你的方法时,它会一次又一次地初始化,并且不记得你上次设置它的方式(真或假)。 试试这个。

Dim num As Boolean

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)  Handles Button1.Click

   If num = False Then
       PictureBox3.Image = My.Resources.Beep
       num = True
   Else
       PictureBox3.Image = My.Resources.Skateboard
       num = False
End If

End Sub