使用图像更改选中状态
本文关键字:状态 图像 | 更新日期: 2023-09-27 18:21:08
当单击PictureBox
时,我使用绑定到PictureBox
的Click
事件的此代码来更改图像。
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;
}
}
它是有效的,但如果我在PictureBox
中有"打开"的图像,单击它不会更改图像,它仍然是"打开"图像。我试过这个代码,但它对我不起作用:
private void Form1_Load(object sender, EventArgs e)
{
if (pictureBox1.Image == Properties.Resources.On)
{
checkBox1.Checked = true;
}
else
{
checkBox1.Checked = false;
}
}
我需要上的图像=已选中复选框image off=checkedbox not Checked
执行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
类型,因此不必存储和比较字符串,例如可以添加枚举。(尽管在这种情况下,字符串应该足够了)。