IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Richtextbox et coloration syntaxique


Sujet :

Windows Forms

  1. #1
    Membre du Club

    Inscrit en
    Mars 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 63
    Points : 65
    Points
    65
    Par défaut Richtextbox et coloration syntaxique
    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

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par titip Voir le message
    Est ce que quelqu'un aurait une idée pour avoir une méthode moins coûteuse svp ?
    Une bonne idée serait de ne pas réinventer la roue et d'utiliser un composant éprouvé.

    Il en existe deux qui sont bons et gratuits :
    Le premier est l'éditeur de texte de SharpDevelop que tu peux trouver dans le code source de ce dernier (ICSharpCode.TextEditor)
    Le deuxième est Scintilla.Net

  3. #3
    Membre du Club

    Inscrit en
    Mars 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 63
    Points : 65
    Points
    65
    Par défaut
    Ah ok super, pour info j'utilise ICSharpCode.TextEditor.

    Vu que le composant ne gere pas le SQL, j'ai du rajouter un Sql-Mode.xshd.

    Merci pour l'aide

    Titip

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 15
    Dernier message: 21/04/2011, 22h17
  2. Coloration Syntaxique de HTML dans RichTextBox
    Par will97 dans le forum VB.NET
    Réponses: 0
    Dernier message: 02/05/2010, 03h29
  3. Coloration syntaxique Richtextbox
    Par Gad29 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 10/12/2008, 14h46
  4. Coloration syntaxique
    Par _-Sky-_ dans le forum Composants
    Réponses: 4
    Dernier message: 03/01/2004, 21h58
  5. Coloration syntaxique ASM dans un RichEdit
    Par Crick dans le forum Composants VCL
    Réponses: 5
    Dernier message: 20/12/2002, 01h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo