如果picturebox.image == Properties.Resources.ImageA

时间:2014-03-12 21:54:49

标签: c# winforms picturebox

我制作了几个按钮(图片框),然后你点击它们就会改变图像。

我尝试了这段代码,但它总是跳到其他地方。

图像是从资源加载的。

private void pictureBox7_Click(object sender, EventArgs e)
    {
       if (pictureBox7.Image == KaminuSkaiciuokle.Properties.Resources.IcopalA)
       {
           pictureBox7.Image = KaminuSkaiciuokle.Properties.Resources.IcopalB;
       }
       else
       {
            pictureBox7.Image = KaminuSkaiciuokle.Properties.Resources.IcopalA;
       }
    }

想出来。

insted比较picturebox.image我设置了picturebox.tag并进行比较。

pictureBox7.Tag = "B";
if (pictureBox7.Tag.ToString() == "A")
   {
        pictureBox7.Image = KaminuSkaiciuokle.Properties.Resources.IcopalB;
        pictureBox7.Tag = "B";
   }
   else
   {
        pictureBox7.Image = KaminuSkaiciuokle.Properties.Resources.IcopalA;
        pictureBox7.Tag = "A";
   }

2 个答案:

答案 0 :(得分:4)

您应该保留对资源的本地引用,因为当您调用KaminuSkaiciuokle.Properties.Resources...时,您将始终获得对象的新实例:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    Bitmap _icopalABitmap = KaminuSkaiciuokle.Properties.Resources.IcopalA;
    Bitmap _icopalBBitmap = KaminuSkaiciuokle.Properties.Resources.IcopalB;

    private void pictureBox1_Click(object sender, EventArgs e)
    {            
        if (pictureBox7.Image == _icopalABitmap)
        {
            pictureBox7.Image = _icopalBBitmap;
        }
        else
        {
            pictureBox7.Image = _icopalABitmap;
        }
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        pictureBox7.Image = _icopalABitmap;
    }
}

答案 1 :(得分:-2)

请注意此代码:

Bitmap _icopalABitmap = KaminuSkaiciuokle.Properties.Resources.IcopalA;

_icopalABitmap:这是你理想的名字。 KaminuSkaiciuokle:它是你的项目名称。 IcopalA:是你的图片名称