如何在不将最后一行留空的情况下向richtextbox添加新行?

时间:2016-04-14 09:23:37

标签: c# winforms

我为正在创建的程序创建了一个日志系统,而且我现在已将它用于执行此操作的位置:

void outToLog(string output)
{
    logRichTextBox.AppendText(output + "\r\n");
    logRichTextBox.ScrollToCaret();
}

但它最终将RichTextBox的最后一行输出为空白(因为我使用\n)并且我希望最后一行只是输出,而不是空行。另一种方法是让我将"\r\n"放在开头,但除了它在RichTextBox的开头之外,它具有相同的效果。

帮助?感谢

2 个答案:

答案 0 :(得分:7)

在换行符后附加文字。

void outToLog(string output)
{
    logRichTextBox.AppendText("\r\n" + output);
    logRichTextBox.ScrollToCaret();
}

如果您不想在开始时使用换行符,请检查TextBox是否为空文本,并仅在TextBox不为空时添加\r\n

void outToLog(string output)
{
    if(!string.IsNullOrWhiteSpace(logRichTextBox.Text))
    {
        logRichTextBox.AppendText("\r\n" + output);
    }
    else
    {
        logRichTextBox.AppendText(output);
    }
    logRichTextBox.ScrollToCaret();
}

答案 1 :(得分:6)

呃,为什么不检查?如果文本框为空 - 只需输出输出,但如果文本框不为空,请添加新行,然后附加输出

void outToLog(string output)
{
    if (String.IsNullOrEmpty(logRichTextBox.Text)) 
        logRichTextBox.AppendText(output);
    else
        logRichTextBox.AppendText(Environment.NewLine + output);

    logRichTextBox.ScrollToCaret();
}