2012-09-04 34 views
0

我正在做一個業餘愛好國際象棋項目,當我加載圖片時,它會拋出一個無法找到圖片的異常。我知道情況並非如此,它在之前以及當我使用它的方法加載它們時起作用。它們位於正確的位置,文件路徑正確。起初,代碼使用了Bitmap類而不是Image類,它們給出了相同的結果。在班級定義中加載圖片時出現錯誤

我在類定義中加載圖像的主要原因是我多次使用大多數圖像,我想確保每個圖像只加載一次。

這顯示了類的定義和第一個按鈕,但每個圖片都加載了一塊。

public partial class PieceButton : Button 
{ 
    private static readonly Image blackBishop = Image.FromFile("images/black_bishop.gif"); 

稍後,我將在片段移動時將加載的圖像應用於按鈕。 該類繼承Button,因爲默認的按鈕行爲非常有用。 圖像是.gif,因爲然後按鈕背景保持可見(字段是白色或黑色)。

所以我的問題是:如何在類定義中正確加載這些圖像?

+0

你能後從當你在一個方法加載它的代碼「加載一次圖像」的行爲? –

+1

*「它拋出一個例外,圖像無法找到,我知道情況並非如此」* - 對嗎?我傾向於相信運行時。你意識到你正在從一個相對路徑靜態初始化這個對象,對嗎? –

+2

此外(這並不意味着作爲對此問題的答案,而是爲您提供一種替代路徑),您可能需要考慮將圖像作爲Resources.resx中的資源添加。如果您使用的是Visual Studio,那麼比上面的嘗試要容易得多。 –

回答

1

考慮將圖像作爲資源添加到Resources.resx,並讓Visual Studio擔心生成代碼以實際將底層數據轉換爲Image對象。這具有許多優點,最大的優點是任何問題(如圖像不存在)都會在編譯時被捕獲,因爲VS會提前爲您生成Properties.Resources.whatever。

你也會得到你的願望

相關問題