按钮.分辨率的比较
本文关键字:比较 分辨率 按钮 | 更新日期: 2023-09-27 18:07:02
我试图在if语句中比较按钮的背景图像,最好是Properties.Resourse.image
,但如果需要,我可以比较两个按钮的背景图像。最终目标是查看按钮是否有一个灰色的背景图像,如果有,我有一个图像,我想改变它。到目前为止,我试过的所有方法都不起作用。
第一次尝试
public Form1()
{
InitializeComponent();
foreach (var c in this.Controls)
{
var btn = c as Button;
if (btn != null) btn.BackgroundImage = Properties.Resources.Grey;
}
}
private void btnPlay1_Click(object sender, EventArgs e)
{
if (btn00.BackgroundImage == Properties.Resources.Grey)
{
MessageBox.Show("Is a valid move");
}
}
这不起作用,所以在做了一些研究之后,我发现了.Equals()
函数,所以我尝试了
if (btn00.BackgroundImage.Equals(Properties.Resources.Grey))
{
MessageBox.Show("Is a valid move");
}
这不起作用,所以我试着看看它是否与其他按钮一起工作
if (btn00.BackgroundImage.Equals(btn01.BackgroundImage))
{
MessageBox.Show("Is a valid move");
}
然而,它只在与自身比较时起作用
if (btn00.BackgroundImage.Equals(btn00.BackgroundImage))
{
MessageBox.Show("Is a valid move");
}
我也试过做一个简单的变量和比较按钮。
问题是使用Properties.Resources
每次都会创建一个新对象,所以即使Properties.Resources.Grey == Properties.Resources.Grey
也会是false
。您应该做的是每个Image
去Properties.Resources
一次,并将结果分配给一个字段,然后重复使用该字段。这样,将只有一个Image
对象,比较将按预期工作。