2013-09-05 34 views
-1

如何顯示添加到列表中的內容並逐行顯示在文本框中?我將文本文件中的數據添加到列表中,以便在每行之後添加文本。如何使用字符串數組並逐行顯示

private void button1_Click(object sender, EventArgs e) 
    { 

     try 
     { 
      var list = new List<string>(); 

      using (var sr = new StreamReader("C:\\File1.txt")) 
      { 
       string line; 

       while ((line = sr.ReadLine()) != null) 
       { 
        list.Add(line); 
       } 

      } 

      TextBox.Text = string.Join(Environment.NewLine, list.ToArray()); 

     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("An error has occurred" + ex.Message); 
     } 


    } 
+6

請不要只問我們爲你解決問題。告訴我們你是如何試圖自己解決問題的,然後向我們展示結果是什麼,並告訴我們爲什麼你覺得它不起作用。請參閱「[您嘗試過什麼?](http://whathaveyoutried.com/)」,以獲得一篇您最近需要閱讀的優秀文章。 –

+0

你是對的約翰。我編輯,以顯示我到目前爲止嘗試。 –

回答

6

喜歡的東西:

aTextbox.Text = string.Join(Environment.NewLine, list.ToArray()); 

這將需要每個字符串數組中,並在它們之間添加一個換行符。

+2

務必將您的文本框設置爲多行。 – paqogomez

+2

我不知道'Environment.NewLine'是否取決於當前的一些'系統設置',但看起來像它的值是'\ r \ n'。順便說一下,自.NET 4.0開始,我們不需要傳入'array'作爲第二個參數,只需要'IEnumerable '就可以了。 –

+0

這對我來說很好@Paddy。 –

0

如果您只需要在TextBox內顯示文件源,則不需要先將數據保存在List<string>之內。只要這樣做:

string text = ""; 
using (var sr = new StreamReader("C:\\File1.txt")) 
{ 
    string line; 
    while ((line = sr.ReadLine()) != null) 
    { 
      text += line + Environment.NewLine; 
    } 
} 
aTextbox.Text = text; 
0

另一種方式 - 沒有循環遍歷文件中的所有行。

using System.IO; 

private void WriteFileContentsToTextBox(string filePath) 
{ 
    // Always check for existence of the file 
    if (File.Exists(filePath)) 
    { 
     // Open the file to read from. 
     string[] readText = File.ReadAllLines(filePath, Encoding.UTF8); 
     myMultilineTextBox.Text = string.Join(Environment.Newline, readText); 
    } 
}  
+0

我想循環,因爲我需要設置一個條件,並且該條件的結果決定了我需要在每行的末尾添加一些文本。希望這是有道理的。 –

相關問題