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)
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 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));
Est ce que quelqu'un aurait une idée pour avoir une méthode moins coûteuse svp ?
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); }
Merci d'avance
Titip
Partager