갑자기 해봐야겠다는 생각이 나서..역시나 코드는 남겨놔야 나중에 편하므로...
생각보다 머리 아프네요..
뼈대만 작성한 것이고 필요에따라 추가를 더 해야 하는 것이라..
기본적으로 private void Text() 라는 문구를 입력을 하면
비쥬얼 스튜디오 처럼 private와 public가 파란색으로 변경됩니다.
아직 파란색만 가능하게 되어있고 다른색은 좀더 추가를 해야 하는..생각보다 귀찮아서 여기까지만..ㅋ;

아직 ()와 같은 특수기호를 걸러내는 코딩은 안했으므로 만약 이 코드를 사용시에는 위에서 말한
다른색과 ()등 다른 기호나 문자가 붙어있을 경우 걸러내는 코딩은 따로 해야 할 듯하네요

코드는 비교적 간단합니다;


01// 단어가 파란색으로 변경 되어야할지를 판단한다
02private 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로 보내어 체크한다.
15private 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}
Posted by 아르다