2015-01-21 66 views
0

我想從我的串行端口獲取數據並將這些數據顯示在文本框中。但是當我運行mu代碼時,它只在文本框中顯示一行,並被下一行代替。但我想要下一個字符串的每個部分。在文本框中顯示一個字符串

private void button1_Click(object sender, EventArgs e) 
{   
    SerialPort serP = new System.IO.Ports.SerialPort("COM3", 9600, System.IO.Ports.Parity.None, 8, System.IO.Ports.StopBits.One); 

    while (true) 
    { 
     serP.Open(); 
     serP.WriteLine("test"); 
     string dataIn = serP.ReadLine(); 
     textBox1.Text = dataIn;    
     serP.Close(); 
    } 
} 

這是我的代碼,希望有人能幫我解決這個問題。 裏克

+0

textBox1.Text = textBox1.Text + dataIn;嘗試閱讀有關此https://msdn.microsoft.com/en-us/library/ms228504.aspx – jayvee 2015-01-21 09:21:57

回答

2

正好連接你的文字:

textBox1.Text += dataIn + Environment.NewLine;    

,並確保您的文本框是(對於非標準Windows.Forms.TextBoxtextBox1.Multiline = true或者如果它是由一些控件庫文本somethimg類似)多

+0

非常感謝! – Rick 2015-01-21 09:29:20

+0

不客氣。考慮[標記答案爲接受](http://stackoverflow.com/help/someone-answers)而不是「謝謝」,如果答案對你有用;) – 2015-01-21 09:32:04

0

我會去與安迪科內耶夫的回答。但是如果你想在一個新的行中的每個部分,你可以改變他的代碼如下圖所示,

textBox1.Text += dataIn + Environment.NewLine; 

此外,如果你要設置的文本框爲多行中後臺代碼,

textBox1.TextMode = TextBoxMode.MultiLine; 

注: 我假設你正在使用WinForms。如果是這樣,你也可以使用RichTextBox控件。它不需要設置MultiLine。

+0

'System.Windows.Forms.TextBox'沒有屬性稱爲「TextMode」。它只有'Multiline'布爾屬性。 – 2015-01-21 09:38:03

+0

我的不好!我編寫了用於System.Web.UI.WebControls.TextBox的代碼。 – CodeTantric 2015-01-21 09:41:20

0

我同意帕萬。如果你想使用多行,我更喜歡RichtTextBox。

此外,如果您只想顯示某些內容,也可以使用簡單的標籤。

我認爲這對用戶來說比在TextBox中更好,但是只有如果你想顯示某些東西而不用其他東西。

+0

爲了顯示** plain **文本而不是設置'textBox.Multiline = true','RichTextBox'的用法看起來像是一個「矯枉過正」。 – 2015-01-21 09:53:08

相關問題