在资源路径使用字符串

在资源路径使用字符串

问题描述:

PictureBox CharacterIcon = new PictureBox();  
CharacterIcon.Image = Properties.Resources.Moeyy; 

我想使代码动态,做这样的事情:在资源路径使用字符串

string fileName = "Moeyy"; 
PictureBox CharacterIcon = new PictureBox(); 
CharacterIcon.Image = Properties.Resources.fileName; 

但我不能做到这一点,是有办法解决它?我需要使用来自Resources的图像,因为我不能保证(如果我从一个目录加载它们),用户将把它们放在同一个目录中! 我将图像导入到Resources.resx中,因此Properties.Resources.Moeyy是项目内的图像。

+1

什么意见?您是否在项目中部署图片?你在谈论resx资源吗?你在resx中有图片或文件名吗?你想要做什么? – Andez

+0

我正在谈论resx资源,我将一个图像导入它,图像的名称是“Moeyy”,我将该图像分配给PictureBox.Image对象。 我在resx中有图像,而不是文件名。 –

+0

@guntbert哦,对不起!我正在编辑,一定忽略了它!但是,自从我得到我的答案之后,这就是所有需要的解释。= 3 –

你需要做的是:使用ResourceManager.GetObject(filename)它返回给定键上的对象。

您必须明确地施放它:(Image)ResourceManager.GetObject(key)并且您应该在trycatch语句中使用它,以便如果出现错误,您的程序不会崩溃。

这里是我的源代码:https://msdn.microsoft.com/en-us/library/963f81yd.aspx

+0

谢谢!工作。 –