我在richTextBox中输入一些文字,现在我需要实现这样一个功能:当我输入:“系统:你好!欢迎您使用!”的时候,我要把系统两个字的颜色自动变为红色,其他的不变。也就是说当里面出现系统两个字是,这两个字总是以红色出现。请问要怎么弄呢?

解决方案 »

  1.   

    给个思路给你,捕获字符串,if(string s = "系统")s.Front.Color.Read;我没有经过编译器,手写的,记得是这样我以前也做过的。忘对你有所帮助。
      

  2.   

    思路:
    在textbox的textchange事件里面写代码
    一旦发现有"系统"两个字。。就直接改变它的颜色。Font
      

  3.   


            private void richTextBox1_TextChanged(object sender, EventArgs e)
            {
                string str = "系统";
                if (richTextBox1.Text.EndsWith(str))
                {
                    char[] cs = str.ToCharArray();
                    string[] strs = richTextBox1.Text.Split(new string[] { str }, StringSplitOptions.None);
                    richTextBox1.Clear();
                    for (int i = 0; i < strs.Length; i++)
                    {
                        richTextBox1.SelectionColor = Color.Black;
                        richTextBox1.AppendText(strs[i]);
                        if (i < strs.Length - 1)
                        {
                            richTextBox1.SelectionColor = Color.Red;
                            richTextBox1.AppendText(str);
                            richTextBox1.SelectionColor = Color.Black;
                        }
                    }
                }
            }你试试看,我在自己的机器上测试通过了
      

  4.   

    //rich 传入你写入的RichTextBox
            //guanjianzi关键字 (系统)
            //关键字的颜色(Red)
            //普通文本的颜色(Black)
            private void ReplaceColor(RichTextBox rich, string guanjianzi, Color color,Color color1)
            {
                if (rich.Text.Length == 0 || guanjianzi.Equals(""))
                    return;
                int n = 0;
                int p = -1;
               int length=guanjianzi.Length;            
                while (true)
                {
                    p = rich.Text.IndexOf(guanjianzi, n);
                    if (p > -1)
                    {
                        rich.Select(p, length);                    
                        rich.SelectionColor = color;
                        rich.SelectionStart = rich.Text.Length;
                        rich.SelectionColor = color1;
                        n = p + length - 1;
                        p = -1;
                    }
                    else
                    {
                        break;
                    }
                }
            }
            //内容改变事件里调用方法
            private void richTextBox1_TextChanged(object sender, EventArgs e)
            {
                ReplaceColor(richTextBox1, "系统", Color.Red,Color.Black);
            }
      

  5.   

            //rich 传入你写入的RichTextBox
            //guanjianzi关键字 (系统)
            //color关键字的颜色(Red)
            //color1普通文本的颜色(Black)
            private void ReplaceColor(RichTextBox rich, string guanjianzi, Color color,Color color1)
            {
                if (rich.Text.Length == 0 || guanjianzi.Equals(""))
                    return;
                int n = 0;
                int p = -1;
               int length=guanjianzi.Length;            
                while (true)
                {
                    p = rich.Text.IndexOf(guanjianzi, n);
                    if (p > -1)
                    {
                        rich.Select(p, length);                    
                        rich.SelectionColor = color;
                        rich.SelectionStart = rich.Text.Length;
                        rich.SelectionColor = color1;
                        n = p + length - 1;
                        p = -1;
                    }
                    else
                    {
                        break;
                    }
                }
            }
            //内容改变事件里调用方法
            private void richTextBox1_TextChanged(object sender, EventArgs e)
            {
                ReplaceColor(richTextBox1, "系统", Color.Red,Color.Black);
            }
      

  6.   

    if (richTextBox1.Text.Contains(str))