gpt4 book ai didi

c# - button.Background图片对比

转载 作者:太空宇宙 更新时间:2023-11-03 21:19:15 25 4
gpt4 key购买 nike

我正在尝试比较 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 也会是 。您应该做的是针对每个 Image 转到一次 Properties.Resources 并将结果分配给一个字段,然后重复使用该字段。这样一来,将只有一个 Image 对象,并且比较将按预期进行。

关于c# - button.Background图片对比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31910413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com