我正在尝试编写一个Windows窗体应用程序。我有一些按钮,我需要根据变量的状态更改按钮的图像。我把图像放在Resources文件夹中,我试图像这样到达它们:
Image im = Properties.Resources.green;
如何使用“im”变量名称从项目中的所有类中获取此 im 值?
答案 0 :(得分:5)
您正在寻找的是一个简单的全局变量,但它们没有C#中的那些变量。一个简单的替代方法是创建一个名为MyImages(或其他)的类,然后将“im”设为静态公共字段,如下所示:
public class MyImages
{
public static Image im = Properties.Resources.green;
}
然后,从项目的任何地方,您都可以使用以下代码访问“im”:
Image newImage = MyImages.im;
有些程序员可能会从这样的事情中惊慌失措,并坚持“依赖注入”或正确的单身人士,或使“im”私有并创建一个获取/设置公共财产,或类似的东西。但是,如果您确实需要从代码中的任何位置访问此Image,这是一种简单有效的方法,它实现了保持代码在一个位置生成Image的目标。
答案 1 :(得分:1)
您可以尝试使用ResourceManager:
ResourceManager rm = new ResourceManager("items", Assembly.GetExecutingAssembly());
有关详细信息,请查看here