Ich habe eine RichTextBox mit benutzerdefinierter Formatierung für spezielle Textteile darin. Es gibt jedoch einen Fehler, bei dem nach dem Einfügen eines Charakters das Caret vor dem neu eingefügten Zeichen statt nach dem Zeichen platziert wird.Wie kann ich die Caretposition programmatisch in eine RichTextBox verschieben?
Dies liegt daran, für jeden bearbeiten, berechnet der Code den Inhalt der benutzerdefinierten Formatierung und setzt dann die CaretPosition wie so ...
protected override void OnTextChanged(TextChangedEventArgs e)
{
base.OnTextChanged(e);
currentPos = CaretPosition.GetNextInsertionPosition(LogicalDirection.Forward);
// Apply special formatting on the content
Content = GetContentValue();
if (currentPos != null)
CaretPosition = currentPos;
}
Ich bin nicht sicher, wie man sich bewegt den Cursor im Code so anzuwenden dass es NACH dem eingefügten Zeichen erscheint, zB wenn der Originalinhalt "11" ist und ich eine "2" in die Mitte des Textes einfüge, möchte ich, dass das Caret hinter der "2" steht.
Es erscheint derzeit als "1x21" (wobei x das Caret ist). Jede Hilfe wäre willkommen
Danke, das erklärt viel! Ich werde versuchen, den Offset für den neuen Inhalt zu verwenden, um die Caret-Position zu verschieben – Tiggy