2009-06-30 7 views
1
  • Language = C#
  • version .NET = 3,5

Lorsque mon code effectue la coloration syntaxique du texte apparaît, à l'utilisateur, à défilement automatique. Cela devient un problème grave lorsqu'il y a plusieurs centaines de lignes de texte dans la zone de texte enrichie. Alors, comment puis-je modifier par programmation la couleur du texte sans que l'utilisateur voie autre chose que le changement de couleur?Comment empêcher le défilement automatique d'une zone de texte enrichie lors de la mise en évidence de la syntaxe?

Merci pour toute aide.

+0

Pourriez-vous expliquer comment vous effectuez la coloration syntaxique? Je voudrais implémenter cette fonctionnalité dans un produit sur lequel je travaille. À votre santé. – JSmyth

+0

Mon algorithme contient actuellement six étapes. 1) Rappelez-vous la position actuelle du signe d'insertion. 2) Désactiver les mises à jour de la zone de texte. 3) Recherchez le texte à mettre en surbrillance. 4) Surlignez le texte avec la couleur appropriée. 5) Répétez les étapes 3 et 4 jusqu'à ce que tout le texte qui a besoin d'être surligné soit en surbrillance. 6) Réglez la position du curseur sur sa position correcte. Cet algorithme nécessite un peu de travail. Il est lent sur de grandes quantités de texte. Cependant, seule la mise en évidence du texte que l'utilisateur voit devrait résoudre le problème de performance. – Mackenzie

Répondre

2

Avez-vous essayé quelque chose comme ceci:

Save selstart position. 
Disable updates to the text box. 
Apply syntax highlighting. 
Set selstart to saved value. 
Enable updates. 
+0

J'ai tout fait, sauf désactiver les mises à jour et activer les mises à jour. Maintenant que j'ai fait ça ça fonctionne bien. Je vous remercie. – Mackenzie

+1

J'ai reconnu le problème, même si je ne parle pas C#, ayant été là moi-même. – Argalatyr

Questions connexes