2015-10-18 190 views
1
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 –

回答

3

你需要做的是:使用ResourceManager.GetObject(filename)它返回給定鍵上的對象。

您必須明確地施放它:(Image)ResourceManager.GetObject(key)並且您應該在trycatch語句中使用它,以便如果出現錯誤,您的程序不會崩潰。

這裏是我的源代碼:https://msdn.microsoft.com/en-us/library/963f81yd.aspx

+0

謝謝!工作。 –