资源在resx文件中返回null

时间:2017-12-28 18:42:48

标签: c# winforms embedded-resource

我正在尝试从资源中加载图像,但即使图像位于资源文件中,它也会将其设置为null。

声明图像属性

Image selectedImage = null;
Image emptyImage = null;

ResourceManager rm = new ResourceManager("SchedurlesImages.resx", Assembly.GetExecutingAssembly());


Bitmap selectedImage = (Bitmap)rm.GetObject("selected");
Bitmap emptyImage = (Bitmap)rm.GetObject("empty");

在这里,当我逐步调试调试器时,它们显示为null? enter image description here

1 个答案:

答案 0 :(得分:0)

您已声明了2个变量或字段:

Image selectedImage = null;
Image emptyImage = null;

但是你要将资源分配给新的局部变量(在变量前面写一个类型名称使它成为一个新的变量声明):

Bitmap selectedImage = (Bitmap)rm.GetObject("selected");
Bitmap emptyImage = (Bitmap)rm.GetObject("empty");

删除类型名称以使用先前声明的变量

selectedImage = (Image)rm.GetObject("selected");
emptyImage = (Image)rm.GetObject("empty");

如果图像位于当前项目的资源中,您可以使用

访问它们
selectedImage = Properties.Resources.selected;
emptyImage = Properties.Resources.empty;

Visual Studio使用硬编码和强类型资源创建一个代码隐藏文件。