如何在Winforms C#中获取按钮背景图像的名称

8

我在表单中添加了一张图片,并将其设置为按钮的背景图片。如何通过编程获取按钮背景图片的名称?


1
一张图像没有名字。毕竟,它是由你自己添加的,你应该没有问题知道原始文件名或资源名。 - Hans Passant
即使我知道资源名称,我如何将其与按钮背景图像名称进行比较? - Arunkumar Chandrasekaran
1
你不知道,背景图片没有名称。你需要解释一下你真正想做什么,因为它完全无法猜测。 - Hans Passant
@arunkumarnonascii,您混淆了知道原始文件的名称和分配给您的控件的Image对象的“名称”。后者不存在;它只是内存中的图像对象。 - Andrew Barber
2个回答

4

您无法检索图像的名称。

当您设置图片时,可以将图片的名称存储在按钮的“Tag”属性中。

只要您保持与图像同步,就可以检查“Tag”属性。

更好的方法是对按钮进行子类化,并添加一个属性来存储名称。


0
如果你使用Winforms设计器设置了BackgroundImage属性,Visual Studio已为您在.Designer.cs文件中生成了以下行:
this.button1.BackgroundImage = global::WindowsFormsApplication5.Properties.Resources.my_image_name;

正如您所看到的,它正在将类型为System.Drawing.Bitmap的值影响到类型为System.Drawing.Image的属性上。 您在此处唯一拥有的信息就是图像本身

如果您自己添加了该图像:

string resourceKey = "my_image_name";
this.button1.BackgroundImage = (System.Drawing.Image)Properties.Resources.ResourceManager.GetObject(resourceKey);

如果您已经有资源的名称,那么您可以继续进行操作...

如果这并没有回答您的问题,请更清晰地表达。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接