2013-12-13 90 views
0

我需要將圖像加載到圖片框。如何動態加載圖片框中的圖像?

圖像名稱來自數據庫。

data[14].ToString() = 20131213.jpg 

下面這段代碼是不是爲我工作,而不是隻顯示與照片的路徑一個消息..

try 
    { 
     pictureBox1.Image = Image.FromFile(@"C:\ORS\uploads\photos" + data[14].ToString() + ""); 
    } 
catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 

堆棧跟蹤= " at System.Drawing.Image.FromFile(String filename, Boolean useEmbeddedColorManagement)\r\n at System.Drawing.Image.FromFile(String filename)\r\n at PSPC.RECRUIT.RE010_1.RE010_1_Load(Object sender, EventArgs e) in C:\\Users\\Quen\\Desktop\\Files\\Sour...

+0

你是說你在這裏粘貼的代碼不起作用嗎?什麼是問題? –

+0

它可能是你錯過了一個「\」後的單詞照片,除非是在你正在返回的數據庫字段 –

+0

試過它,但仍然無法正常工作..但謝謝!我真的忘了那個「\」.. – QKWS

回答

0

這個問題是不是真的足以脫身以回答具體的問題,但在加載可能導致代碼不起作用的圖像時存在一些常見錯誤:

  • 文件名或路徑不正確。我建議將文件名放入一個字符串變量中,然後使用調試器將該名稱複製並粘貼到開始 - >運行框中。這在確定文件名/路徑錯誤方面非常有用。
  • 該文件無效或格式不正確。如果您不小心重命名文件或文件不是.NET識別的圖片(例如,在Photoshop中編輯的分層TIFF圖像無法在.NET中打開),則會發生這種情況。 GDI +圖像格式和類型有限制,所以你需要真正意識到這些。
  • 文件訪問被拒絕。即使文件存在(如果程序以標準用戶帳戶運行並且文件位於系統文件夾中的某處),也可以得到該文件。如果你需要加載這個文件,你需要添加一個應用程序清單,以提升特權運行你的進程。
  • 文件在其他地方使用你可以得到這個,即使你沒有打開文件的其他地方,因爲打開一個位圖不用設置就可以把該文件中使用。 99%的時間可以通過在「使用」語句中打開位圖來解決此問題。注意:如果圖像綁定到表單上,則不能使用此功能,因爲處理圖像會導致表單崩潰。從窗體中刪除圖像後處置。看起來使用語法的例子,如:

    使用(圖像X = Bitmap.FromFile(文件名)){// 這裏代碼,使用所述圖像 }

  • 缺貨存儲器異常的 - 你如果您打開的圖像太大或系統內存不足,請獲取此信息。請注意,.NET進程無論如何都會獲得更少的內存,因此您實際上僅限於「正常」大小的映像。

  • 參數無效 - 這是最棘手的故障排除,但它通常涉及到任何數量的問題,例如,您通過分配太大的圖像來問太多GDI +映像引擎。

我不知道這些是哪裏是這裏的問題,但我懷疑如果你通過這個列表它應該(遲早)解決你的問題。祝你好運!