C# 使用图像更改选中状态
我使用绑定到C# 使用图像更改选中状态,c#,winforms,C#,Winforms,我使用绑定到PictureBox的单击事件的此代码,在单击PictureBox时更改图像 private void pictureBox1_Click(object sender, EventArgs e) //domanda else if { if (checkBox1.Checked == false) { pictureBox1.Image = Properties.Resources.On;
PictureBox
的单击事件的此代码,在单击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”图像。
我尝试了此代码,但不适用于我:
private void Form1_Load(object sender, EventArgs e)
{
if (pictureBox1.Image == Properties.Resources.On)
{
checkBox1.Checked = true;
}
else
{
checkBox1.Checked = false;
}
}
我需要图像打开=选中复选框选中
image off=checkedbox在执行pictureBox1.image==Properties.Resources时未选中。在
上检查它们是否等于相同的引用。答案是它们不是,所以即使图像是相同的,实际的参考也不是。相反,您可以使用PictureBox的属性来存储当前图像数据。比如说
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;
作为旁注,标记
属性包含对象
类型,因此您不必存储和比较字符串,例如,您可以添加枚举。(虽然在这种情况下,字符串就足够了)。“但不适合我”没有帮助。请解释一下,没什么。。picturebox状态未更改,代码无错误第一个代码应该可以工作,我无法理解您的这些单词它可以工作,但是如果我在picturebox中有“on”图像,单击它不会更改图像,它仍然是“on”图像
?还有什么需要澄清的吗?