我的资源中有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) 谢谢!
答案 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
希望这有效。