通过单击按钮切换背景图像

本文关键字:背景 图像 按钮 单击 | 更新日期: 2023-09-27 18:36:37

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

我对编码略知一二,但我是 C# 的新手。我已经创建了一个表单,当单击"更改背景"按钮时,我想在两个不同的图像之间切换表单背景图像。我发现这段代码将在图像和无图像之间切换:

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

我以为我可以使用它来实现我想要的东西,但我无法让它工作。我猜我需要完全不同的代码?我以为"如果"语句是要走的路,但我也无法弄清楚。

提前感谢任何帮助。

通过单击按钮切换背景图像

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

private int imgId=0;

然后button_click应包含:

this.BackgroundImage = imgId==0 ? Properties.Resources.image2 : Properties.Resources.image1;
imgId=imgId==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;
   }
}