2010-10-15 64 views
0

嘿,當我點擊一個空位圖時,出現內存不足的問題。內存不足列表框圖片查看器

 private void listBox1_SelectedIndexChanged(object sender, EventArgs e) 
    { 



     //if (pictureBox1.Image != null) 
     // try 
     // { 
       pictureBox1.Image = System.Drawing.Image.FromFile("C:/folder/" + listBox1.SelectedItem.ToString()); 

     //} 

     //catch (NullReferenceException) 
     //{ 

     // MessageBox.Show("The image box is empty!"); 
     //} 

    } 

我試圖嘗試抓住沒有工作壽。任何幫助將非常感謝。

+1

您的抓取可能無法正常工作,因爲您正在捕獲NullReferenceException,而不是基礎Exception。無法捕捉一個帶有NullRef異常的OOM異常......順便說一句,你用if檢查null,爲什麼還要捕獲NullRef呢? – EJC 2010-10-15 17:34:35

+0

你有沒有嘗試追加一些字符串(如「mynameisbob」),你有'listBox1.SelectedItem.ToString()',只是爲了縮小是什麼導致你的麻煩。 – EJC 2010-10-15 17:37:53

回答

3

沒有像'空位圖'那樣的東西。您可能有一個只包含黑色或白色像素的位圖。它需要的內存與具有相同大小的照片一樣多。當它很大時也能夠產生OOM異常。

或者是因爲你點擊了幾次,因爲你忘了處理舊之一:

if (pictureBox1.Image != null) pictureBox1.Image.Dispose(); 
    pictureBox1.Image = null; 
    pictureBox1.Image = System.Drawing.Image.FromFile(...); 

也可能有一些錯誤的圖像文件格式,或許是一個GDI +不支持。不幸的是,這也會產生OOM。如果相關:不要嘗試加載.txt文件。