2016-10-06 46 views
-1

我試圖動態顯示圖像在PictureBox。圖像源存儲在一個文本文件中。從文件讀取圖像路徑時,它會一直顯示圖像錯誤符號。當我在代碼中包含路徑時它就起作用了。C#:無法從WinForms中的文本文件分配圖像到PictureBox圖像源路徑

文本文件,在線樣品

F01,椰漿飯,RM 2,@ 「食品\ NasiLemak.jpg」

public void readData() 
{ 
    try 
    { 
     int i = 0; 
     foreach (string line in File.ReadAllLines("food.txt")) 
     { 
      string[] parts = line.Split(','); 
      foreach (string part in parts) 
      { 
       Console.WriteLine("{0}:{1}", i, part); 
       { 
        Label LblFId = new Label(); 
        { 
         //LblFId.AutoSize = true; 
         LblFId.Size = new System.Drawing.Size(70, 20); 
        } 
        Label LblFName = new Label(); 
        { 
         LblFName.Size = new System.Drawing.Size(70, 20); 
        } 
        Label LblFPrice = new Label(); 
        { 
         LblFPrice.Size = new System.Drawing.Size(70, 20); 
        } 

        PictureBox foodPicBox = new PictureBox(); 
        { 
         foodPicBox.Size = new System.Drawing.Size(200, 200); 
         foodPicBox.SizeMode = PictureBoxSizeMode.StretchImage; 
         foodPicBox.BorderStyle = BorderStyle.Fixed3D; 

        } 
        Panel fPanel = new Panel(); 

        LblFId.Text = parts[0]; 
        LblFName.Text = parts[1]; 
        LblFPrice.Text = parts[2]; 
        foodPicBox.ImageLocation = parts[3]; 

        fPanel.Controls.Add(LblFId); 
        fPanel.Controls.Add(LblFName); 
        fPanel.Controls.Add(LblFPrice); 
        fPanel.Controls.Add(foodPicBox); 
        foodFlow.Controls.Add(fPanel); 


       } 
      } 
      i++; 

     } 
    } 

    catch (Exception ex) 
    { 
     Console.WriteLine(ex.Message); 
    } 
} 
+7

能否請您分享您的代碼以關閉的foreach statment ??? –

+0

請分享您的代碼 –

+0

您應該閱讀[MCVE] –

回答

1

的問題是從文本文件

路徑
@"Food\NasiLemak.jpg" 

這應該像沒有@和「

Food\NasiLemak.jpg 

或者你應該寫更多的代碼刪除這樣

foodPicBox.ImageLocation = parts[3].Replace("@", "").Replace("\"", ""); 

這這些符號將刪除樣本,您的問題將得到解決。

你也需要在這一點上

foreach (string part in parts) 
     {Console.WriteLine("{0}:{1}", i, part);} 
+0

你可以接受答案並將它投票 – iceDragon

+0

我想問的另一個問題,爲什麼我的圖像重複4次,你能讓我知道? – February

+0

只需在Writeline之後關閉foreach語句即可解決重複問題 – iceDragon