Je veux déplacer les positions du caret 4 à droite de l'endroit où mon caret est actuellement. Je suis inscrit pour Previeviewkedown CODE> et appelez
insertextinrun () code> Lorsque la touche TAB est capturée, comme:
private void rtb_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Tab)
{
rtb.CaretPosition.InsertTextInRun(" ");
e.Handled = true;
}
}
3 Réponses :
Wow, j'ai dû manquer ça! Je vais essayer ça bientôt, merci! :)
Désolé, pas de dés. Le caret n'a pas bougé vers la fin du texte inséré.
N'a pas fonctionné pour moi non plus, seule solution qui fonctionne est la solution acceptée.
Je viens de heurter le même problème. Il semble que la position finale du calet dépend de quelle manière il se déplaçait juste avant l'insertion.
Le code suivant s'assure (3.5SP1) qu'après insertion, le curseur sera à la droite du texte inséré: P>
rtb.CaretPosition = rtb.CaretPosition.GetPositionAtOffset(0, LogicalDirection.Forward); rtb.CaretPosition.InsertTextInRun(text);
Pour tester, vous pouvez essayer de forcer le mouvement vous-même vous-même:
rtb.CaretPosition = rtb.Document.ContentEnd;