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; }
标签:index,高亮,int,list,richTextBox1,关键字,Length,str,RichText 来源: https://www.cnblogs.com/Zingu/p/11769542.html