zoukankan      html  css  js  c++  java
  • RichText实现动态输入关键字高亮颜色显示

            int a = 0;
            string[] kc = new string[40] { "private","protected","public","namespace","class","object","if","else",
                                           "while","switch","case","using","eventargs","return","null","void","int",
                                           "string","float","char","this","set","new","true","false","const",
                                            "static","internal","extends","super","import","default","break",
                                            "try","catch","finally","main","writeline","console","writeLine"    }; 
    
            private void timer1_Tick(object sender, EventArgs e)
            {
                a = changeColor(kc);
                timer1.Enabled = false;
            }
            /// <summary>
            /// 改变richTextBox中指定字符串的颜色
            /// 调用即可
            /// </summary>
            /// <param name="str" value="为指定的字符串"></param>
    
            public int changeColor(string[] str)
            {
                ArrayList list = null;
                int b = 0;
                for (int i = 0; i < str.Length; i++)
                {
                    list = getIndexArray(richTextBox1.Text.ToLower(), str[i]);
                    b += list.Count;
                }
                for (int i = 0; i < str.Length; i++)
                {
                    list = getIndexArray(richTextBox1.Text.ToLower(), str[i]);
                    if (list.Count == 0)
                    {
                        continue;
                    }
                    if (a == b)
                    {
                        richTextBox1.SelectionColor = Color.Empty;
                        return b;
                    }
                    for (int j = 0; j < list.Count; j++)
                    {
                        int index = (int)list[j];
                        richTextBox1.Select(index, str[i].Length);
                        richTextBox1.SelectionColor = Color.Blue;
                        this.richTextBox1.Focus();
                        //设置光标的位置到文本尾 
                        this.richTextBox1.Select(this.richTextBox1.TextLength, 0);
                        //滚动到控件光标处
                        this.richTextBox1.ScrollToCaret();
                        richTextBox1.SelectionColor = Color.Empty;
                    }
                }
                return b;
            }
    
            public ArrayList getIndexArray(String inputStr, String findStr)
            {
                ArrayList list = new ArrayList();
                int start = 0;
                while (start < inputStr.Length)
                {
                    int index = inputStr.IndexOf(findStr, start);
                    if (index >= 0)
                    {
                        list.Add(index);
                        start = index + findStr.Length;
                    }
                    else
                    {
                        break;
                    }
                }
                return list;
            }
    
            private void textBox1_TextChanged(object sender, EventArgs e)
            {
                timer1.Enabled = true;
            }



      

  • 相关阅读:
    WLC-Download 3-party CA to WLC
    WLC-生成CSR操作
    MSE-初始化MSE
    Nexus-产品认识
    Nexus-配置VDC
    Nexus-VDC(Virtual Device Context)
    Nexus-FEX基础配置
    Nexus-配置vPC 实验三
    Nexus-配置vPC 实验二
    Nexus-配置vPC 实验一
  • 原文地址:https://www.cnblogs.com/Zingu/p/11769542.html
Copyright © 2011-2022 走看看