Je veux déplacer le curseur 4 positions vers la droite de l'endroit où se trouve actuellement mon curseur. Je suis inscrit pour PreviewKeyDown
, et appelant InsertTextInRun()
lorsque la touche de tabulation est capturée, comme ceci:Comment déplacer le curseur d'un certain nombre de positions dans un RichTextBox WPF?
private void rtb_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Tab)
{
rtb.CaretPosition.InsertTextInRun(" ");
e.Handled = true;
}
}
Le problème est que le caret reste en place après l'appel à InsertTextInRun()
. Il ne pas déplacer à la fin du nouveau texte, qui est le comportement que je veux. Comment ferais-je cela?
En aparté - Oui, je sais au sujet de la propriété AcceptsTab
sur RichTextBox
. Je choisis d'ignorer est et roule ma propre fonctionnalité de tabulation parce que le tabulation avec AcceptsTab
a un mauvais effet secondaire d'indenter le texte sur les lignes suivantes, qui est pas ce que je veux.
Wow, je dois avoir raté ça! Je vais essayer ça très bientôt, merci! :) –
Désolé, pas de dés. Le curseur n'a pas bougé jusqu'à la fin du texte inséré. –
N'a pas fonctionné pour moi non plus, seule la solution qui fonctionne est la solution acceptée. – ToastyMallows