右键单击1按钮可在2个图像之间切换

时间:2016-04-02 14:13:37

标签: vb.net

我的资源中有2张图片( cat.png dog.png )。 我想知道当我右键点击它时,如何更改两个图像之间的按钮背景图像。这是一个例子:

当我右键单击按钮时,按钮的图像是猫,当我再次右击时,它会变为狗。

这是我的代码不起作用:

Private Sub btn1_MouseDown(sender As Object, e As MouseEventArgs) Handles btn1.MouseDown
    If (e.Button = Windows.Forms.MouseButtons.Right) Then
        btn1.BackgroundImage = My.Resources.cat
        btn1.BackgroundImageLayout = ImageLayout.Stretch
    End If
    If ((e.Button = Windows.Forms.MouseButtons.Right) And (Not btn1.BackgroundImage Is Nothing)) Then
        btn1.BackgroundImage = My.Resources.dog
        btn1.BackgroundImageLayout = ImageLayout.Stretch
    End If
End Sub

猫正在显示,但当我再次点击右键时,没有任何事情发生。

(抱歉我的英文不好:P) 谢谢!

1 个答案:

答案 0 :(得分:0)

你应该知道如何清楚地写出一个逻辑。我认为没有必要写第二个if语句。

所以下面的检查就足以确定猫是否会显示其他狗展示猫。

If (e.Button = Windows.Forms.MouseButtons.Right) Then
        If((btn1.BackgroundImage = My.Resources.cat) Or (btn1.BackgroundImage IsNot Nothing))  Then  'check for cat or no image
        btn1.BackgroundImage = My.Resources.dog        ' set dog
        Else
        btn1.BackgroundImage = My.Resources.cat        'set cat
        End If
        btn1.BackgroundImageLayout = ImageLayout.Stretch       'in any case only stretch once
End If

我还要说改变不是像下面那样检查:

btn1.BackgroundImage IsNot Nothing

希望这有效。