【问题标题】:C# RichTextBox Environment.NewLine not working.1C# RichTextBox Env​​ironment.NewLine 不工作.1
【发布时间】:2018-03-26 03:58:45
【问题描述】:

我有一个自定义类可用作 winform 应用程序中的调试控制台。它写的一切都很好,除了它永远不会进入下一行(wordwrap 故意设置为 false)。这是我的课:

public static class ConsoleEx
{
    private static RichTextBox outTarget;

    public static void Initialize(RichTextBox target) { outTarget = target; }

    public static void Write( string source, string message ) { Write( source, Color.LightSkyBlue, message );}
    public static void Write( string source, Color sourceColor, string message ) { Write( source, sourceColor, message, Color.Silver );}
    public static void Write( string source, Color sourceColor, string message, Color messageColor )
    {
        if ( outTarget.InvokeRequired )
        {
            outTarget.Invoke( (MethodInvoker)delegate { Write( source, sourceColor, message, messageColor ); } );

            return;
        }

        int wordStart = outTarget.TextLength;

        outTarget.AppendText( source );
        outTarget.Select(wordStart, source.Length);
        outTarget.SelectionColor = sourceColor;

        wordStart = outTarget.TextLength;
        outTarget.DeselectAll();

        outTarget.AppendText( message );
        outTarget.Select(wordStart, source.Length);

        outTarget.SelectionColor = messageColor;
        outTarget.DeselectAll();
    }

    public static void WriteLine( string source, string message ) { Write( source, Color.LightSkyBlue, message);}
    public static void WriteLine( string source, Color sourceColor, string message ) { Write( source, sourceColor, message, Color.Silver );}
    public static void WriteLine( string source, Color sourceColor, string message, Color messageColor )
    {

        if (outTarget.InvokeRequired)
        {
            outTarget.Invoke((MethodInvoker)delegate { WriteLine(source, sourceColor, message, messageColor); });

            return;
        }

        Write( source, sourceColor, message, messageColor );
        outTarget.AppendText( Environment.NewLine );
    }
}

如您所见,我有一个 Write 和一个 WriteLine 部分。当然,写入不会追加新行。但是当我使用 WriteLine 时,它​​会执行并执行最后一行outTarget.AppendText( Environment.NewLine );,并且我假设它会按照预期添加它。但它不起作用。在等待大约 20 行打印到“控制台”RichTextBox 后,每一行都只是附加到第 0 行。有什么想法吗?

【问题讨论】:

  • 留言后有没有试过“\n”?

标签: c# newline richtextbox


【解决方案1】:

好吧,我做了一个傻事。我不小心将两个 WriteLine 链改为 Write 而不是第三个 WriteLine。大声笑,-facedesk.-

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-30
    • 2018-06-17
    • 2015-09-03
    • 2012-03-04
    • 1970-01-01
    • 2015-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多