在文本框中显示一个字符串

display a string in textbox

我想从我的串行端口获取数据并将这些数据显示在文本框中。但是当我 运行 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();
    }
}

这是我的代码,我希望有人能帮我解决这个问题。 瑞克

只需连接您的文本:

textBox1.Text += dataIn + Environment.NewLine;             

并确保您的文本框是多行的(textBox1.Multiline = true 对于标准 Windows.Forms.TextBox 或者类似的东西,如果它是来自某些控件库的文本框)

我赞成 Andy Korneyev 的回答。但是,如果您希望每个部分都换行,您可以像下面这样更改他的代码,

textBox1.Text += dataIn + Environment.NewLine;

此外,如果您想在代码隐藏中将文本框设置为多行,

textBox1.TextMode = TextBoxMode.MultiLine;

注: 我假设您正在使用 WinForms。如果是这样,您还可以使用 RichTextBox 控件。不需要设置有多行。

我同意帕文的观点。如果您想使用多行,我也更喜欢 RichtTextBox。

此外,如果您只想展示一些东西,您也可以使用简单的标签。

我认为对于用户而言,这比将它放在文本框中要好得多,但是 如果您想显示某些内容而不用在其他内容中。