2013-04-03 55 views
9

Tôi đang cố gắng hiển thị icon file trong hộp hình ảnh. Tôi đang sử dụng mã này để đặt hình ảnh.Hiển thị biểu tượng trong hình ảnh

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

Nhưng tôi nhận được ngoại lệ này.

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() 

Làm cách nào để khắc phục sự cố này?

Cảm ơn.

Trả lời

4

Giải quyết sự cố.

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

Hãy thử này:

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

Hope Trợ giúp này.

+0

Đó là những gì tôi đã được tìm thấy. Dù sao cũng cảm ơn bạn. –

2

Một số biểu tượng có kích thước không chính xác 48x48 đến 32x32.

mã cuối cùng của tôi là:

Bitmap _image; 
    try 
    { 
    _image = new Icon(icon, width, height).ToBitmap(); 
    } 
    catch(ArgumentOutOfRangeException) 
    { 
    _image = Bitmap.FromHicon(new Icon(icon, new Size(width, height)).Handle); 
    } 
Các vấn đề liên quan