2010-03-27 6 views
28

서식 단추를 누를 때마다 문자열을 쓰는 RichTextBox가 있습니다. 각 문자열은 문자열 "Long"또는 "Short"로 시작하여 줄 바꿈으로 끝납니다. 문자열을 추가 할 때마다 RichTextBox의 맨 아래에 추가됩니다. "Long"으로 시작하면 빨간색을, 빨간색으로 시작하면 파란색으로 표시하고 싶습니다. 어떻게해야합니까?WinForms RichTextBox 내의 텍스트 색상 변경

답변

46

물론이 작업을 수행하려면 SelectionStart, SelectionLength 및 SelectionColor 속성을 사용하면됩니다. 그것은 아주 잘 작동합니다.

이러한 속성에 대한 정보는 this page을 확인하십시오.

SelectionTart 속성을 현재 길이로 설정하고 추가 할 문자열의 길이를 가져 와서 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

+4

+1 이것은 받아 들인 대답보다 간단하고 우아하기 때문에 +1. –

관련 문제