Bonjour,
je cherche a créer un petit editeur de texte et j'aimerais que certains mots-clés soient en couleur. Je me suis évidemment tourné du côté du contrôle RichtTextBox qui le permet, j'ai rapidement obtenu un résultat, les mots-clés enregistrés sont bien en couleur. Pour appliquer ces couleurs, je suis obligé de revérifier tout le texte, donc quand j'applique les couleurs au texte, je bloque le rafraîchissement du contrôle tant que ce n'est pas terminé. Le problème est que sur les longs texte, je me retrouve confronté à un problème de lenteur. Même si je mets un timer pour la vérification des couleurs au lieu de le faire à chaque fois que le texte change, ce n'est pas agréable a l'utilisation, on voit le texte s'afficher quelques secondes après l'avoir écrit.
J'ai essayé de sauvegarder un tableau avec le SelectionStart et le SelectionLength à côté pour savoir tous les endroits ou j'avais déjà appliqué la couleur et ainsi ne pas avoir à réappliquer les couleurs sur le texte déjà écrit, mais j'ai quelques problèmes. Il faut déjà que je décale ces valeurs si le texte ajouté est écrit avant, si le texte rajouté est issu d'un copier/coller je ne sais pas de combien je dois décaler... C'est aussi problématique lorsque c'est du texte effacé. Bref, c'est vraiment pas pratique, et tout ça à cause de la façon dont le RichtTextBox fonctionne, je trouve déjà un peu stupide de devoir sélectionner le texte pour le modifier....
J'ai tenté quelques trucs avec un WebBrowser que j'utiliserais comme éditeur de texte, cela fonctionne plutôt bien, je n'ai plus les problèmes de lenteurs, par contre je perds toutes les fonctions et évènement de la TextBox/RichTextBox et cela est bloquant pour ce que je veux faire de ce programme. J'aimerais par exemple ajouter une fonctione d'Auto-Completion, avec la TextBox ou RichTextBox, j'ai pu trouvé sur internet une classe qui permet de le rajouter et cela fonctionne, mais par contre pas avec le WebBrowser, ce qui est normal.
J'en viens a vous demander conseil pour résoudre mon problème, pensez-vous qu'il est judicieux de continuer à améliorer le RichTextBox ? J'ai l'impression qu'il n'y a pas vraiment moyen d'améliorer ces problèmes de lenteurs mais je me trompe peut-être. Auriez-vous un lien ou je pourrais télécharger un contrôle qui permet de répondre à mes besoins ? J'en ai déjà cherché sur internet, j'en ai trouvé plusieurs mais c'était toutes des évolution du RichtTextBox et il y avait toujours ce problème de lenteur. Ou alors auriez-vous d'autres suggestions ?
Merci d'avance pour votre aide.
Cordialement
Partager