用按钮单击切换背景图像

时间:2016-02-29 09:04:08

标签: c#

这是我的第一篇文章,所以如果我做错了什么,我道歉: - )

我对编码有点了解,但我是C#的新手。我创建了一个表单,我想在单击“更改背景”按钮时在两个不同图像之间切换BackgroundImage形式。我发现这个代码将在图像和没有图像之间切换:

this.BackgroundImage = this.BackgroundImage == null ? Properties.Resources.image1 : null;

我以为我可以用它来达到我想要的效果,但我无法让它发挥作用。我猜我需要完全不同的代码?我认为“if”声明是要走的路,但我也无法解决这个问题。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

想象一下,你想在2张图片之间切换。使用标志确定哪一个已启动,然后根据该标志更改图像。

private int imgId=0;

然后button_click应该包含:

this.BackgroundImage = imgId==0 ? Properties.Resources.image2 : Properties.Resources.image1;

imgId=imgId==0 ?1:0;

答案 1 :(得分:0)

this.BackgroundImage = this.BackgroundImage == null ? Properties.Resources.image1 : null;

检查背景是否为null,如果为null则返回图像,否则返回null。 您可以将此代码用于您的问题,但我建议您创建一个变量来检查而不是两个图像。完整图像上的相等运算符不是高效的;)

我会尝试在这里编写清晰的代码,并留下困难的if操作符以便更好地理解。

//This variable doesn't erase if it's outside the function
private bool firstImage = true; 

public function SwitchImage(){
   if (firstImage == true){
       //set background
       this.BackgroundImage = Properties.Resources.image2
       //update var
       firstImage = false;
   } else {
       //set background
       this.BackgroundImage = Properties.Resources.image1
       //update var
       firstImage = true;
   }
}