2011-04-12 124 views
2

我想切換顯示在toolStripButton上的圖像。但我認爲無法找到如何做到這一點。如何從文件中顯示PNG?

我想應該是這樣的:

btSearch.Image = new Image("myimage.png"); 

但它不工作(新形象似乎不存在)。

謝謝您的幫助

回答

2

我推薦Image.FromStream()方法,因爲它不鎖定實際的文件。

例如:

using (var stream = File.OpenRead(path)) 
using (var image = Image.FromStream(stream)) 
{ 
    //Black magic here. 
} 

請注意,您必須保持流打開圖像的壽命。如果使用相同的流連續調用此方法,則流重置爲零。

這是一個previous discussion從Jon Skeet的答案。

4

使用Image.FromFile()

btSearch.Image = Image.FromFile("myimage.png"); 

不幸的是,該文件將被鎖定,直到您處理圖像。對於另一種解決方案,請參閱問題ToolStripButton: what's wrong with assigning an image programmatically

+1

**不推薦!**文件保持鎖定狀態,直到圖像被丟棄。最好使用另一種不鎖定文件的方法。 – 2011-04-12 02:34:02

+0

你有什麼方法可以推薦?或者,最好是複製文件,使用副本然後處理? – Mathieu 2011-04-12 02:36:41

+0

我添加了更多信息。 – 2011-04-12 02:40:50