Hallo,
ich habe eine Richtextbox, in der ich Syntaxhighlighting vornehme.
foreach (Match keyWordMatch in myRegex.Matches(richTextBoxLogfile.Text))
{
richTextBoxLogfile.Select(keyWordMatch.Index, keyWordMatch.Length);
richTextBoxLogfile.SelectionColor = actHighlightObject.HightlightColor;
richTextBoxLogfile.SelectionFont = new Font(richTextBoxLogfile.Font, FontStyle.Bold);
}
Jetzt ist das Problem: Wenn ich in der Richtextbox einmal Text markiert habe und die Methode dann aufgerufen wird, scrollt die Richtextbox automatisch mit der wechselnden Selection mit.
Jemand eine Idee, wie ich es löschen kann? Stehe voll auf dem Schlauch!
Viele Grüße & danke
Hallo Till-H,
eigentlich sollte die Box nicht mitscrollen. Aber wenn sie es doch tut, kannst du mit ScrollToCaret am Ende an de gewünschte Position (zurück)scrollen.
Siehe [Tutorial] Einfaches Keyword-Highlighting für eine möglicherweise bessere Möglichkeit, die farbliche Markierung vorzunehmen.
herbivore
Hallo herbivore,
das ist richtig, mache ich auch so. Problem ist, das in der Textbox ca 14000Zeilen sind. Man sieht also, wie die Textbox die ganze Zeit mitscrollt. Es scrollt also in einem Affenzahn durch den Text.
Gruß
Begin/EndUpdate(); hilft dir da wahrscheinlich
> Codejunky <
Begin/EndUpdate(); hilft dir da wahrscheinlich
Hallo Junky,
auch das habe ich mir schon gedacht, leider hat die RichTextBox diese Methoden nicht. Kann also nicht benutzt werden 😦
Hallo JunkyXL,
Begin/EndUpdate gibt es nur bei Listen-Controls wie ListView u.ä.
herbivore
Siehe
> für eine möglicherweise bessere Möglichkeit, die farbliche Markierung vorzunehmen.
Dein Link hat das Problem nun doch gelöst. Ich habe nicht die Syntaxhighlighting Methode, aber die "BeginUpdate" und die "EndUpdate" Funktion daraus benutzt. Nach dem Endupdate muss ich zwar noch ein "Invalidate()" aufrufen, aber es funktioniert!
Vielen dank euch allen 😃
Grüße