Vb.net 右键单击1按钮在两个图像之间切换
我的资源中有两张图片(cat.png和dog.png)。 我想知道当我右键点击按钮时,如何在两个图像之间更改按钮的背景图像。以下是一个例子: 当我右键单击按钮时,按钮的图像是cat,当我再次右键单击时,它将变为dog 以下是我的代码,它不起作用:Vb.net 右键单击1按钮在两个图像之间切换,vb.net,Vb.net,我的资源中有两张图片(cat.png和dog.png)。 我想知道当我右键点击按钮时,如何在两个图像之间更改按钮的背景图像。以下是一个例子: 当我右键单击按钮时,按钮的图像是cat,当我再次右键单击时,它将变为dog 以下是我的代码,它不起作用: Private Sub btn1_MouseDown(sender As Object, e As MouseEventArgs) Handles btn1.MouseDown If (e.Button = Windows.Forms.Mous
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)
谢谢 您应该知道如何清楚地编写逻辑。在这里,我认为无需编写第二条if语句 因此,下面的检查足以确定是否显示cat,然后显示dog,否则显示cat
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
希望这能起作用。您需要一个表单级布尔变量(
CatShowing
?)。执行第一个块时,测试CatShowing是否为真。如果是,则显示狗并将CatShowing设置为false。下次,由于CatShowing为false,您将显示cat并将CatShowing设置为true。感谢您的帮助,但它在