我使用此代码绑定到PictureBox
的{{1}}事件,以便在点击Click
时更改图片。
PictureBox
它可以工作,但是如果我在private void pictureBox1_Click(object sender, EventArgs e) //domanda else if
{
if (checkBox1.Checked == false)
{
pictureBox1.Image = Properties.Resources.On;
checkBox1.Checked = true;
}
else
{
pictureBox1.Image = Properties.Resources.Off;
checkBox1.Checked = false;
}
}
中有“on”图像,单击它不会改变图像,它仍然是“on”图像。
我试过这段代码,但它对我不起作用:
PictureBox
我需要图片= checkbox已检查 image off = checkedbox未选中
答案 0 :(得分:2)
执行pictureBox1.Image == Properties.Resources.On
时,您正在检查它们是否等于相同的引用。答案是它们不是,所以即使图像是相同的,实际参考也不是。相反,您可以使用PictureBox的Tag属性来存储当前图像数据。例如
if (checkBox1.Checked == false)
{
pictureBox1.Image = Properties.Resources.On;
pictureBox1.Tag = "ON";
checkBox1.Checked = true;
}
else
{
pictureBox1.Image = Properties.Resources.Off;
pictureBox1.Tag = "OFF";
checkBox1.Checked = false;
}
然后,当您想要查看它具有的图像时,您可以阅读该标记
if (pictureBox1.Tag.ToString() == "ON")
checkBox1.Checked = true;
else
checkBox1.Checked = false;
作为旁注,Tag
属性包含object
类型,因此您不必存储和比较字符串,例如,您可以添加枚举。 (虽然在这种情况下字符串就足够了)。