2012-08-02 49 views
0

我想使用方法获取所有按钮的backgroundimage的路径,但我似乎无法获取路径。这是我的代码如何获取c中按钮的BackgroundImage路径#

b1.BackgroundImage = Image.FromFile(C:\\Users\\m\\Documents\\Visual Studio 
2010\\Projects\\PApp\\Papp\\1.jpg) ; 

b2.BackgroundImage = Image.FromFile(C:\\Users\\m\\Documents\\Visual Studio 2010\\Projects\\PApp\\Papp\\2.jpg) ; 

Console.WriteLine(b2.BackgroundImage); 
Console.WriteLine(b1.BackgroundImage); 

我可以显示在按钮图像,但我希望它显示在控制台的路径,但所有我得到的是System.Drawing.Bitmap。路径是静态的。

回答

1

你不能。一旦加载位图,位图对象会忘记路径,因为它不再需要它。

您可以创建一个新类并让它继承按钮。添加一个名为BackgroundImagePath的属性,该属性执行上述代码来设置基类(按钮)BackgroundImage。还可以将它变成私人变量,并在房产中得到咳嗽。

这是骗人的。但这是唯一的方法。

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);