在c#中的richtextbox的特定行中添加文本

时间:2012-08-02 20:28:36

标签: c# richtextbox

如何在富文本框的特殊行中添加文本... 例: 我想在第6行添加“This Text”

4 个答案:

答案 0 :(得分:2)

只要行号可用

即可

示例:

string[] lines = richTextBox1.Lines;
lines[6] = "This Text";
richTextBox1.Lines = lines;

答案 1 :(得分:0)

我认为你可以使用.Lines属性,它是一个字符串[],并且是可读写的...但我认为你必须在第6行前插入空行,如果它们不是已经。

答案 2 :(得分:0)

正如其他人所说,在Windows窗体中,您可以使用RichTextBox.Lines属性来执行此操作。

WPF RichTextBox中这有点棘手:你需要在行的开头找到TextPointer,向下移动7行,然后向后移动一个位置,然后插入文本那里。像这样的东西(我不在Visual Studio附近,这可能无法编译!):

public static void InsertText(RichTextBox richText, int line, string text) {
    // Find the position at the end of the specified line.
    var documentStart = richText.Document.ContentStart;
    var lineEnd = documentStart.GetLineStartPosition(line + 1)
                      .GetPositionAtOffset(1, LogicalDirection.Backward);

    // Insert the text there.
    lineEnd.InsertTextInRun(text);
}

答案 3 :(得分:0)

如果您想在第6行插入文字而不会丢失当前文字

string[] buffer = new string[richTextBox1.Lines.Length+1];
Array.Copy(richTextBox1.Lines, 0, buffer, 0, 5);
buffer[5] = "MyText";
Array.Copy(richTextBox1.Lines, 5, buffer, 6, richTextBox1.Lines.Length - 5);
richTextBox1.Lines = buffer;