2010-03-27 97 views
28

我有一個RichTextBox,每次單擊「表單」按鈕時都會寫入一個字符串。每個字符串都以字符串「Long」或「Short」開頭,並以換行符結束。每次添加一個字符串時,它都會附加到RichTextBox的底部。如果以「長」生存,每行都會變成紅色,如果以「變短」開始,則爲藍色。我怎樣才能做到這一點?更改WinForms RichTextBox中文本的顏色

回答

46

當然,你可以做的是使用SelectionStart,SelectionLength和SelectionColor屬性來完成這個。它工作得很好。

查看this page瞭解這些屬性的信息。

通過將SelectionStart屬性設置爲當前長度,獲取要附加的字符串的長度,設置SelectionLength,然後將SelectionColor設置爲,您可以知道RichTextBox文本的長度併爲其着色適當。沖洗並重復添加每個字符串。

int length = richTextBox.TextLength; // at end of text 
richTextBox.AppendText(mystring); 
richTextBox.SelectionStart = length; 
richTextBox.SelectionLength = mystring.Length; 
richTextBox.SelectionColor = Color.Red; 

就是這樣的。這就是我記得它的工作原理。

35

我只是在我正在編寫的程序中這樣做。我正在做@itsmatt之類的東西,但我覺得更簡單一些。您只需設置Selectioncolor,然後從RichTextBox的那一點開始,您就可以使用該顏色,直到將其更改爲其他顏色。如果你正在測試每條線路,這似乎工作得很好,很容易。

if(myString == "Long") 
{ 
    richTextBox.SelectionColor = Color.Red; 
} 
else 
{ 
    richTextBox.SelectionColor = Color.Green 
} 
richTextBox.AppendText(myString); 
+7

我喜歡這種方法。感覺比追加文本更有效率,然後返回並使其變成另一種顏色,再加上你不必擔心選擇開始/長度。 – James 2011-07-07 10:40:31

+4

+1,因爲這比接受的答案更簡單,更優雅。 – 2014-01-23 04:23:54