C# RichTextBox 단어별 글자색 지정하기
C#/Tip :
2009. 9. 22. 18:48
갑자기 해봐야겠다는 생각이 나서..역시나 코드는 남겨놔야 나중에 편하므로...
생각보다 머리 아프네요..
뼈대만 작성한 것이고 필요에따라 추가를 더 해야 하는 것이라..
기본적으로 private void Text() 라는 문구를 입력을 하면
비쥬얼 스튜디오 처럼 private와 public가 파란색으로 변경됩니다.
아직 파란색만 가능하게 되어있고 다른색은 좀더 추가를 해야 하는..생각보다 귀찮아서 여기까지만..ㅋ;
아직 ()와 같은 특수기호를 걸러내는 코딩은 안했으므로 만약 이 코드를 사용시에는 위에서 말한
다른색과 ()등 다른 기호나 문자가 붙어있을 경우 걸러내는 코딩은 따로 해야 할 듯하네요
코드는 비교적 간단합니다;
01 | // 단어가 파란색으로 변경 되어야할지를 판단한다 |
02 | private bool WordCheak( string str) |
03 | { |
04 | string [] tmp = { "private" , "public" }; |
05 | for ( int n = 0; n < tmp.Length; n++) |
06 | { |
07 | if (str == tmp[n]) |
08 | { |
09 | return true ; |
10 | } |
11 | } |
12 | return false ; |
13 | } |
14 | // 텍스트박스의 라인이상의 단어를 쪼개서 단어로 만들어 WordCheak로 보내어 체크한다. |
15 | private void button1_Click( object sender, EventArgs e) |
16 | { |
17 | int num = 0; |
18 | // 텍스트박스의 문자열을 줄단위로 잘라낸다 |
19 | string [] Line = textBox1.Text.Split( new char [] { '\n' }); |
20 | richTextBox1.Text = "" ; |
21 |
22 | |
23 | for ( int Linenum = 0; Linenum < Line.Length; Linenum++) |
24 | { |
25 | // 잘라낸 줄단위를 다시 for문으로 단어별로 쪼갠다 |
26 | string [] Word = Line[Linenum].Split( new char [] { ' ' }); |
27 | for ( int Wordnum = 0; Wordnum < Word.Length; Wordnum++) |
28 | { |
29 | // 만약 해당 단어가 true면 파란색을 적용한다 |
30 | if (WordCheak(Word[Wordnum]) == true ) |
31 | { |
32 | if (Wordnum != 0) |
33 | { |
34 | richTextBox1.AppendText( " " ); |
35 | num++; |
36 | } |
37 | richTextBox1.AppendText(Word[Wordnum]); |
38 | richTextBox1.Select(num, Word[Wordnum].Length); |
39 | richTextBox1.SelectionColor = Color.Blue; |
40 | } |
41 | else |
42 | { |
43 | if (Wordnum == 0) richTextBox1.AppendText(Word[Wordnum]); |
44 | else |
45 | { |
46 | num++; |
47 | richTextBox1.AppendText( " " + Word[Wordnum]); |
48 | } |
49 | richTextBox1.Select(num, Word[Wordnum].Length); |
50 | richTextBox1.SelectionColor = Color.Black; |
51 | } |
52 | num += Word[Wordnum].Length; |
53 | } |
54 |
55 | } |
56 | } |
'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 |