2012-12-11 22 views
1

我使用的是StringReader從多文本讀取輸入。但是,我正在經歷奇怪的行爲。
我的代碼:C#Windows窗體 - 古怪的多文本的行爲

string x = reader.ReadLine(); 
int y = int.Parse(x); 

x始終是一個int。
我的問題是,因爲x是多行文本框的第一行,它不包含int,但是System.Windows.Forms.Textbox, Text:10
這裏的任何幫助?

我創建StringReader如下:

using (StringReader reader = new StringReader(Convert.ToString(multilinetbox))) 
{ 

} 
+1

如何創建'StringReader'? –

回答

5

改變你的閱讀器來閱讀多行文本框的Text財產,而不是整個控制:

using (StringReader reader = new StringReader(multilinetbox.Text)) 
+1

不錯的一個...我覺得答案應該被接受.. :) – Sandy

0

我知道你是不是問這但仍然是我想要發佈它。

爲什麼不試試

foreach (string line in multilinetbox.Lines) 
{ 
    int y = int.Parse(line); 
} 

希望它能幫助。

0

因爲Convert.ToString(multilinebox)首先將類型信息,然後獲取文本內容。

您應該multilinebox改爲multilinebox.Text。

using (StringReader reader = new StringReader(Convert.ToString(multilinetbox.Text))) 
{  
} 
0

你必須爲你的代碼的正常結果,因爲Convert.ToString(multilinetbox)其轉換爲文本表示。

嘗試用戶 '線' 屬性來代替:

foreach (string ln in textBox1.Lines) 
{ 
    // some work here 
} 
0

這應該工作:

private void button1_Click(object sender, EventArgs e) 
    { 
     StringReader rdr = new StringReader(textBox1.Text); 
     int y = int.Parse(rdr.ReadLine()); 
    } 

我覺得你在你的StringReader聲明犯了一個錯誤。