2015-01-21 3 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

ответ

2

Просто сцепить текст:

textBox1.Text += dataIn + Environment.NewLine;    

И убедитесь, что текстовое поле многострочное (textBox1.Multiline = true для Standart Windows.Forms.TextBox или somethimg похожи, если это текстовое поле из некоторых элементов управления библиотеки)

+0

большое спасибо! – Rick

+0

Добро пожаловать. Подумайте о том, как [ответ на вопрос, как принято] (http://stackoverflow.com/help/someone-answers), вместо «спасибо», если вам был полезен ответ;) –

0

Я бы с Энди Ответ Корнеева. Но если вы хотите, чтобы каждая часть в новой линии, которую вы могли бы изменить свой код, как показано ниже,

textBox1.Text += dataIn + Environment.NewLine; 

Кроме того, если вы хотите установить текстовое поле как MultiLine в коде позади,

textBox1.TextMode = TextBoxMode.MultiLine; 

Примечание: Предполагаю, что вы работаете с WinForms. Если это так, вы также можете использовать элемент управления RichTextBox. Не нужно устанавливать MultiLine.

+0

'System.Windows.Forms.TextBox' не имеет свойства называемый «TextMode». Он имеет только логическое свойство 'Multiline'. –

+0

Мой плохой! Я написал код, используемый для System.Web.UI.WebControls.TextBox. – CodeTantric

0

Я согласен с Паваном. Если вы хотите использовать более одной строки, я бы тоже предпочел RichtTextBox.

Также, если вы хотите только что-то отобразить, вы можете использовать простую метку.

Я думаю, что для пользователя гораздо приятнее, чем иметь его в TextBox, но только, если вы хотите отобразить что-то, не используя его в других целях.

+0

Использование 'RichTextBox' только для отображения ** обычного текста ** вместо установки' textBox.Multiline = true' выглядит как «overkill» для меня. –