2015-04-04 18 views
3

如何更新richtextbox中的一行文本?c#如何更新richtextbox中的一行文本?

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

我使用的RichTextBox更新第二行的代碼的一部分,但它會掃描我的RichTextBox的線,它需要很多次。

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

我該怎麼做?

回答

3

請注意,您必須從未觸摸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] + " "); 
+0

感謝我現在用列表的相關行了,但我現在住的問題與RichTextBox中的最後一行:/ – nec 2015-04-04 11:25:10

+0

是的,我的錯誤。對不起,我已經更新了答案。它現在對你有用嗎? – TaW 2015-04-04 12:32:27

+0

非常感謝。 – nec 2015-04-05 08:45:55

相關問題