【发布时间】:2021-05-06 12:28:47
【问题描述】:
我有一个设置为看起来像英国标准车牌的标签。
字体设置为 Charles Wright。
我希望能够使用按钮切换此标签的背景图像,但我希望此按钮能够识别当前正在使用的图像,以便它可以相应地更改图像。
图像以“plainFrontNumberPlate.bmp”和“borderedFrontNumberPlate.bmp”的形式存储在“Properties.Resources”中。
我试过了:
if(this.label1.Image == Resources.plainFrontNumberPlate)
{
this.label1.Image = Resources.borderedFrontNumberPlate;
}
else
{
this.label1.Image = Resources.plainFrontNumberPlate;
}
但是当我尝试对此进行测试时。第一次单击将图像更改为 'borderedFrontNumberPlate.bmp 但当我单击两次时不会变回 'plainFrontNumberPlate.bmp。
【问题讨论】:
-
Properties.Resource(假设你的意思是Resources)是一个工厂,每次你要求一个新对象时它都会创建一个新对象,所以你每次都在比较一个不同的对象参考。如果您只有两个图像,则将您的图像资源分配给一个集合(例如,List<Bitmap>)或几个字段。然后你可以比较这些图像的引用,因为引用不会每次都改变。表单关闭时处理图像。 -
是的,“资源”就是我对“Properties.Resource”的意思。我为那个错字道歉。杰出的!我会在今天晚些时候试一试。谢谢你的建议。我稍后会回复以确认这有效。
-
据我了解,您想比较两个图像,因此您必须将图像转换为字节或字符串,然后进行比较。我为你输入了密码。
标签: c# forms winforms button label