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

Con*_*rts 7 c# winforms

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

void outToLog(string output)
{
    logRichTextBox.AppendText(output + "\r\n");
    logRichTextBox.ScrollToCaret();
}
Run Code Online (Sandbox Code Playgroud)

但它最终输出了RichTextBox空白的最后一行(因为我正在使用\n),我希望最后一行只是输出,而不是空行.另一种选择是让我把它"\r\n"放在开头,但是除了它在开头之外,它只有相同的影响RichTextBox.

救命?谢谢

Adw*_*yth 8

在换行符后附加文本.

void outToLog(string output)
{
    logRichTextBox.AppendText("\r\n" + output);
    logRichTextBox.ScrollToCaret();
}
Run Code Online (Sandbox Code Playgroud)

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

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


Dmi*_*nko 7

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

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

    logRichTextBox.ScrollToCaret();
}
Run Code Online (Sandbox Code Playgroud)