C# RichTextBox 단어별 글자색 지정하기
C#/Tip :
2009. 9. 22. 18:48
갑자기 해봐야겠다는 생각이 나서..역시나 코드는 남겨놔야 나중에 편하므로...
생각보다 머리 아프네요..
뼈대만 작성한 것이고 필요에따라 추가를 더 해야 하는 것이라..
기본적으로 private void Text() 라는 문구를 입력을 하면
비쥬얼 스튜디오 처럼 private와 public가 파란색으로 변경됩니다.
아직 파란색만 가능하게 되어있고 다른색은 좀더 추가를 해야 하는..생각보다 귀찮아서 여기까지만..ㅋ;
아직 ()와 같은 특수기호를 걸러내는 코딩은 안했으므로 만약 이 코드를 사용시에는 위에서 말한
다른색과 ()등 다른 기호나 문자가 붙어있을 경우 걸러내는 코딩은 따로 해야 할 듯하네요
코드는 비교적 간단합니다;
// 단어가 파란색으로 변경 되어야할지를 판단한다
private bool WordCheak(string str)
{
string[] tmp = {"private", "public"};
for (int n = 0; n < tmp.Length; n++)
{
if (str == tmp[n])
{
return true;
}
}
return false;
}
// 텍스트박스의 라인이상의 단어를 쪼개서 단어로 만들어 WordCheak로 보내어 체크한다.
private void button1_Click(object sender, EventArgs e)
{
int num = 0;
// 텍스트박스의 문자열을 줄단위로 잘라낸다
string[] Line = textBox1.Text.Split(new char[] {'\n'});
richTextBox1.Text = "";
for (int Linenum = 0; Linenum < Line.Length; Linenum++)
{
// 잘라낸 줄단위를 다시 for문으로 단어별로 쪼갠다
string[] Word = Line[Linenum].Split(new char[] { ' ' });
for (int Wordnum = 0; Wordnum < Word.Length; Wordnum++)
{
// 만약 해당 단어가 true면 파란색을 적용한다
if (WordCheak(Word[Wordnum]) == true)
{
if (Wordnum != 0)
{
richTextBox1.AppendText(" ");
num++;
}
richTextBox1.AppendText(Word[Wordnum]);
richTextBox1.Select(num, Word[Wordnum].Length);
richTextBox1.SelectionColor = Color.Blue;
}
else
{
if (Wordnum == 0) richTextBox1.AppendText(Word[Wordnum]);
else
{
num++;
richTextBox1.AppendText(" " + Word[Wordnum]);
}
richTextBox1.Select(num, Word[Wordnum].Length);
richTextBox1.SelectionColor = Color.Black;
}
num += Word[Wordnum].Length;
}
}
}
'C# > Tip' 카테고리의 다른 글
| C# 문자열 암호화 - RSA, MD5, DES (0) | 2009.10.05 |
|---|---|
| C# 소켓통신의 개요 (1) | 2009.10.01 |
| C# 윈폼 슬라이드메뉴 만들기 (0) | 2009.09.19 |
| C# 웹에서 파일 다운로드 방법 (0) | 2009.09.16 |
| C# XML 의 노드를 추가, 수정, 삭제 하기 (1) | 2009.09.12 |


