C#Richtextbox特殊字符的字体和颜色

问题描述:

我想知道如何更改richtextbox中某些字符的颜色。C#Richtextbox特殊字符的字体和颜色

我想改变为四个关键词的颜色:"CONDITION","FIRSTCONDITION","SECONDCONDITION","ACTION"

这是我在RichTextBox的

"If (CONDITION) then" 
"And (FIRSTCONDITION)&(SECONDCONDITION)" 
"While (CONDITION) do(ACTION)" 

文本最后我的代码

public Form1() 
{ 
    InitializeComponent(); 


} 

private void MyRichTextBox(object sender, EventArgs e) 
{ 
    richTextBox1.Font = new Font("Arial", 12f, FontStyle.Bold); 
    string[] words = 
    { "If (CONDITION) then","And (FIRSTCONDITION)&(SECONDCONDITION)", 
"While (CONDITION) do(ACTION)" 
    }; 

    for (int i = 0; i < words.Length; i++) 
    { 
    string word = words[i]; 
    { 
     richTextBox1.AppendText(word); 
    } 
    } 
MyRichTextBox.Settings.Keywords.Add("CONDITION"); 
MyRichTextBox.Settings.Keywords.Add("FIRSTCONDITION"); 
MyRichTextBox.Settings.Keywords.Add("SECONDCONDITION"); 
MyRichTextBox.Settings.Keywords.Add("ACTION"); 
MyRichTextBox.Settings.KeywordColor = Color.Blue; 
} 

感谢您的帮助。

这应该工作,

using System.Text.RegularExpressions; 

List<string> l = new List<string>(); 
     l.Add("CONDITION"); 
     l.Add("FIRSTCONDITION"); 
     l.Add("SECONDCONDITION"); 
     l.Add("ACTION"); 

      foreach (var v in l) 
      { 
       int count = Regex.Matches(rtbxTest.Text, v).Count;//count occurrences of string 
       int WordLen = v.Length; 
       int startFrom=0; 
       for (int i = 0; i < count; i++)  
       { 
        rtbxTest.SelectionStart = rtbxTest.Text.IndexOf(v, startFrom); 
        rtbxTest.SelectionLength = WordLen; 
        rtbxTest.SelectionColor = Color.Red; 
        startFrom = rtbxTest.Text.IndexOf(v, startFrom) + WordLen; 

       } 
      } 

此查找特定字符串的所有事件,并改变其颜色。

+0

@ learningNew that works.Thanks for your help :) –