0

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

这是我的代码:

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

我一直在试图弄清楚为什么它长时间不起作用,任何帮助将不胜感激。

4

2 回答 2

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
于 2013-04-04T18:45:09.677 回答
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
于 2013-04-04T18:47:27.470 回答