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

Wenn mein Code führt Syntax Hervorhebung der Text erscheint, für den Benutzer automatisch Scrollen werden. Dies wird zu einem schwerwiegenden Problem, wenn in dem Rich-Text-Feld mehrere hundert Textzeilen vorhanden sind. Wie kann ich die Farbe des Texts programmatisch ändern, ohne dass der Benutzer etwas anderes als die Farbänderung sieht?Wie verhindern Sie, dass eine Rich-Text-Box bei der Syntax-Hervorhebung automatisch scrollt?

Danke für jede Hilfe.

+0

Können Sie uns erklären, wie Sie Syntax-Hervorhebung durchführen? Ich möchte dieses Feature in einem Produkt implementieren, an dem ich selbst arbeite. Prost. – JSmyth

+0

Mein Algorithmus enthält derzeit sechs Schritte. 1) Merken Sie sich die aktuelle Position des Caret. 2) Deaktivieren Sie die Updates für das Textfeld. 3) Suchen Sie nach Text, der hervorgehoben werden muss. 4) Markieren Sie den Text mit der entsprechenden Farbe. 5) Wiederholen Sie die Schritte 3 und 4, bis der gesamte Text markiert ist. 6) Stellen Sie die Position des Carets auf die korrekte Position ein. Dieser Algorithmus benötigt etwas Arbeit. Bei großen Textmengen ist es langsam. Wenn Sie jedoch nur den Text hervorheben, der dem Benutzer angezeigt wird, sollten Sie das Leistungsproblem beheben. – Mackenzie

Antwort

2

Haben Sie so etwas wie dies versucht:

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

Ich habe alles außer Updates deaktivieren und Updates aktivieren. Jetzt, wo ich das gemacht habe, funktioniert es gut. Vielen Dank. – Mackenzie

+1

Ich erkannte das Problem, obwohl ich nicht C# spreche, weil ich selbst dort war. – Argalatyr

Verwandte Themen