J'ai un RichTextBox avec un formatage personnalisé sur des bits spéciaux de texte. Cependant, il y a un bug où, après l'insertion d'un personnage, le signe insertion est placé avant le caractère nouvellement inséré au lieu de l'après.Comment puis-je déplacer la mise en page par programmation dans un RichTextBox?
C'est parce que pour chaque édition, le code recalcule le contenu d'appliquer la mise en forme personnalisée et définit ensuite la CaretPosition comme si ...
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;
}
Je ne sais pas comment déplacer le curseur dans le code si qu'il apparaît APRÈS le caractère inséré, par exemple si le contenu original est "11" et que j'insère un "2" au milieu du texte, je voudrais que le Caret soit après le "2".
Il apparaît actuellement comme "1x21" (où x est le Caret). Toute aide serait appréciée
Merci, cela explique beaucoup de choses! Je vais essayer d'utiliser le décalage pour le nouveau contenu pour déplacer la position du curseur – Tiggy