'글자색'에 해당되는 글 1건

  1. 2009.09.22 C# RichTextBox 단어별 글자색 지정하기 by 아르다

갑자기 해봐야겠다는 생각이 나서..역시나 코드는 남겨놔야 나중에 편하므로...
생각보다 머리 아프네요..
뼈대만 작성한 것이고 필요에따라 추가를 더 해야 하는 것이라..
기본적으로 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;
                }

            }
        }
저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 아르다

댓글을 달아 주세요

티스토리 툴바