2012-08-02 85 views
0

我怎么能在丰富的文本框... 例子的特殊行添加文字: 我想“这个文本”添加到6号线添加丰富的文本框在C#中的某一行文本

+1

你想动态地做到这一点..你在做什么,即你在用什么过程来填充富文本框..你熟悉使用列表需要更多的信息提供更好的建议 – MethodMan 2012-08-02 20:34:28

+2

我们是在谈论一个WPF (['System.Windows.Controls'](http://msdn.microsoft.com/en-us/library/system.windows.controls.richtextbox.as px))或WinForms(['System.Windows.Forms'](http://msdn.microsoft.com/en-us/library/system.windows.forms.richtextbox(v = vs.80).aspx)) 'RichTextBox'?请适当标记。 – Adam 2012-08-02 20:37:06

回答

0

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

2

可以,只要线数可

例子:

string[] lines = richTextBox1.Lines; 
lines[6] = "This Text"; 
richTextBox1.Lines = lines; 
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); 
} 
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;