【问题标题】:c# how can I update just one line text in richtextbox?c#如何只更新richtextbox中的一行文本?
【发布时间】:2015-04-04 10:36:46
【问题描述】:

如何只更新richtextbox 中的一行文字?

String[] lines = richTextBox8.Lines;
lines[2] += " ";
richTextBox8.Lines = lines;

我正在使用此代码部分来更新richtextbox 的第二行,但它会扫描我所有的richtextbox 行并且需要很多次。

所以我想更新 1 行的行文本。

我该怎么做?

【问题讨论】:

    标签: c# richtextbox


    【解决方案1】:

    请注意,您绝不能直接触摸TextLines,否则之前的所有格式都会被打乱。

    这里有一个函数可以解决问题而不会弄乱格式:

    void changeLine(RichTextBox RTB, int line, string text)
    {
        int s1 = RTB.GetFirstCharIndexFromLine(line);
        int s2 = line < RTB.Lines.Count() - 1 ?
                  RTB.GetFirstCharIndexFromLine(line+1) - 1 : 
                  RTB.Text.Length;        
        RTB.Select(s1, s2 - s1);
        RTB.SelectedText = text;
    }
    

    请注意,在 C# 中,编号是从零开始的,因此要更改您调用 changeLine(yourrichTextBox, 0, yourNewText); 的第一行

    要仅修改(而不是替换)该行,您可以简单地访问 Lines 属性;只要确保永远不要更改它!

    所以要在第二行添加一个空白,你可以这样写:

    changeLine(yourrichTextBox, 1, yourrichTextBox.Lines[1] + " ");
    

    【讨论】:

    • 谢谢我正在使用修改该行,但我在 Richtextbox 的最后一行遇到问题:/
    • 是的,我的错。对不起,我已经更新了答案。现在对你有用吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    • 2011-07-28
    相关资源
    最近更新 更多