2013-04-03 98 views
9

我試圖在圖片框中顯示icon file。我正在使用此代碼來設置圖像。在圖片框中顯示圖標

pictureBox1.Image = new Icon(openFileDialog.FileName, new Size(48, 48)).ToBitmap(); 

但我得到這個例外。

System.ArgumentOutOfRangeException: Requested range extends past the end of the array. 
    at System.Runtime.InteropServices.Marshal.CopyToNative(Object source, Int32 startIndex, IntPtr destination, Int32 length) 
    at System.Runtime.InteropServices.Marshal.Copy(Byte[] source, Int32 startIndex, IntPtr destination, Int32 length) 
    at System.Drawing.Icon.ToBitmap() 

如何克服這個問題?

謝謝。

回答

4

解決了這個問題。

pictureBox1.Image = Bitmap.FromHicon(new Icon(openFileDialog.FileName, new Size(48, 48)).Handle); 
4

試試這個:

pictureBox1.Image = Bitmap.FromHicon(new Icon(openFileDialog.FileName, new Size(48, 48)).Handle); 

希望這有助於。

+0

這就是我發現。不管怎麼說,還是要謝謝你。 –

2

某些圖標大小錯誤地爲48x48至32x32。

我最後的代碼是:

Bitmap _image; 
    try 
    { 
    _image = new Icon(icon, width, height).ToBitmap(); 
    } 
    catch(ArgumentOutOfRangeException) 
    { 
    _image = Bitmap.FromHicon(new Icon(icon, new Size(width, height)).Handle); 
    }