如何使用 IF 语句检查图片框是否包含特定图像

How to check if a picture box contains a certain image using an IF statement

我正在尝试检查 PictureBox 是否包含某个图像,我尝试这样做的方式似乎可以在我的脑海中工作,但是,没有,我不确定是否有任何其他方式检查表单上的图片框是否包含特定图像。

private void user_btn_Click(object sender, EventArgs e)
{         
    //If statement to check if the forms picture box contains a certain image 
    if (pictureBox1.Image == Resources.user_male_white_red_brown)
    {
         this.Hide();
         UserProfile User = new UserProfile();
         User.ShowDialog();
         User.pictureBox1.Image = Resources.user_male_white_red_brown;
         this.Close();
    }
    else if (pictureBox1.Image == Resources.user_female_olive_orange)
    {
          this.Hide();
          UserProfile User = new UserProfile();
          User.ShowDialog();
          User.pictureBox1.Image = Resources.user_female_olive_orange;
          this.Close();
     }
}

虽然 PictureBox Image 可能与资源中的相同,但它们与参考不同。 (想象一下,你有两张相同的照片,尽管它们的图像相同,但它们是两张不同的照片)。

有几种方法可以做到这一点,其中之一(一个简单的方法)是在设置图片时将图片框标签设置为相关值并比较该值而不是比较图像:

User.pictureBox1.Image = Resources.user_male_white_red_brown;
User.pictureBox1.Tag = "user_male_white_red_brown";

然后:

if((string)User.pictureBox1.Tag == "user_male_white_red_brown")
{
     // your logic
}

这样每次设置图像时都需要设置 PictureBox 标签。

另一种方法是将资源中的所有图像加载到数组并从数组中设置 PictureBox 图像,这种方式作为两个图像(picturebox.Image 和数组中的图像项)的参考是同样的比较适用于图像,但我认为第一个解决方案更容易。