2016-10-06 13 views
-1

PictureBoxの画像を動的に表示しようとしています。画像ソースはテキストファイルに保存されます。ファイルからイメージパスを読み取るとき、イメージエラーシンボルが表示され続けます。コードにパスを含めると機能します。C#:winformsのテキストファイルからPictureBox画像ソースパスに画像を割り当てることができません

テキストファイルの行のサンプル

F01、 "食\ 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なステートメントを閉じるためにも必要なあなたのコードを共有してもらえます? –

+0

あなたのコードを共有してください –

+0

あなたは[MCVE] –

答えて

1

@ナシレマッ、RM 2は、問題は、テキストファイルからのパスにある

@"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

私は質問したいもう一つの質問です。 ? – February

+0

繰り返し問題を解決するために、Writelineの後にforeach文を閉じるだけです – iceDragon

関連する問題