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 |