2013-02-13 3 views
2

텍스트 상자에 목록을 표시하려고 할 때 문제가 있습니다. list.txt 파일의 마지막 줄만 표시합니다. 각 줄마다 항상 텍스트 상자의 첫 줄을 덮어 씁니다. 따라서 파일의 마지막 줄만 표시합니까?C# Loadl 텍스트 상자에 나열 WinForms

내가 제대로 이해하려면 무엇이 필요합니까?

private void Form1_Load(object sender, EventArgs e) 
     { 

      const string f = "list.txt"; 

      List<string> myList = new List<string>(); 

      using (StreamReader r = new StreamReader(f)) 
      { 
       string line; 
       while ((line = r.ReadLine()) != null) 
       { 
        myList.Add(line); 
       } 
      } 


      foreach (string s in myList) 
      { 

       textBox1.Text = string.Join(Environment.NewLine, s); 

      } 


     } 
+0

를 작동하는 foreach 루프를 제거하여 하나 개의 간단한 라인이 작업을 수행 할 수 있습니다 내 의견을 바탕으로 – MethodMan

+0

예. 그것은 여러 줄입니다. –

+0

여기에 데이터'MessageBox.Show (String.Join (Environment.NewLine, myList.ToArray()));가 표시되는지 테스트 할 수있는 뭔가가 있습니다. 또한 TextBox1.Text를 덮어 쓰는 것이 좋습니다. 'TextBox'.Text + = string.Join (Environment.NewLine, s);' – MethodMan

답변

4

:

의 foreach (문자열들 myList에있는) { textBox1.Text = string.Join (Environment.NewLine, S); }

보십시오

textBox1.Text = string.Join (Environment.NewLine, myList에);

또한 textbox1의 multiline 속성이 true로 설정되어 있는지 확인하십시오. 당신이

textBox1.Text = string.Join(Environment.NewLine, myList.ToArray()); 

아니면 그냥으로 myList를 사용하여이 같은

textBox1.Text = string.Join(Environment.NewLine, myList); 
+1

보내 주셔서 감사합니다. –

0

언제든지 이전 특성을 제거 할 Text 특성에 직접 지정하기 때문입니다. 수정 사항이 있습니다. 텍스트 상자의 여러 줄을 참으로 만듭니다. 이 대신

private void Form1_Load(object sender, EventArgs e) 
     { 

      const string f = "list.txt"; 

      List<string> myList = new List<string>(); 

      using (StreamReader r = new StreamReader(f)) 
      { 
       string line; 
       while ((line = r.ReadLine()) != null) 
       { 
        myList.Add(line); 
       } 
      } 

      var listString = new StringBuilder() 
      foreach (string s in myList) 
      { 
       listString.Append(Environment.Newline) 
       listString.Append(s);    

      } 
      textBox1.Text = listString.ToString(); 

     } 
+0

이것은 한 줄의 코드로 foreach를 사용하여 반복 할 수 있습니다. 문자열을 – MethodMan

0

는 MultiLine``로 설정 텍스트 상자입니다
+0

'ToArray'는. NET 4.0+에서는 필요하지 않으며, 코드를 기반으로 적어도 4.0을 사용하고 있습니다. – Servy

+0

알아 두지 만 두 번째 예제를 추가하면 첫 번째 예제를 유용하게 사용할 수있는 사람에게 도움이 될 것입니다. – MethodMan

관련 문제