Bonjour à tous,

Je suis entrain de travailler sur une petite application qui devrait gérer une coloration syntaxique (html et sql)

J'ai fait un bout de code qui fonctionne, mais n'es pas assez performant à mon goût, le richtextbox scintille comme un sapin de noël quand je tape du code, et surtout quand je colle un code tout fait :

au debut je definie une classe Balise qui contient un Font, une Color et un string (regex pattern)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
List<Balise> balises;
balises = new List<Balise>();
balises.Add(new Balise("a", Color.AliceBlue));
balises.Add(new Balise("b", Color.AntiqueWhite));
balises.Add(new Balise("c", Color.Aqua));
balises.Add(new Balise("d", Color.Aquamarine));
balises.Add(new Balise("e", Color.Azure));
balises.Add(new Balise("f", Color.Beige));
balises.Add(new Balise("g", Color.Bisque));
Puis je definit une fonction Colorize()

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
private void Colorize()
{
   richTextBox1.SelectAll();
   richTextBox1.SelectionColor = Color.Black;
 
   string str = richTextBox1.Text;
   foreach (Balise b in balises)
   {
      Regex reg = new Regex(b.regex, RegexOptions.Compiled|RegexOptions.CultureInvariant|RegexOptions.Singleline|RegexOptions.IgnoreCase);
      MatchCollection matches = reg.Matches(str);
      foreach (Match m in matches)
      {
         richTextBox1.Select(m.Index, m.Length);
         richTextBox1.SelectionColor = b.color;
      }
   }
   richTextBox1.Select(str.Length, 0);
}
Est ce que quelqu'un aurait une idée pour avoir une méthode moins coûteuse svp ?

Merci d'avance

Titip