J'ai un gestionnaire consommer l'événement KeyDown d'un RTB WinForms, qui a le code suivant:RichTextBox ne met pas à jour la position caret correctement
GetTextAtLoc(RTB->SelectionStart); // selects some text at the caret's position
RTB->SelectedText = "SomeOfMyOwn";
GetTextAtLoc(RTB->SelectionStart); // selects the replacement string
RTB->SelectionStart += RTB->SelectionLength - 1;
Bien que ce code semble faire son travail (selectionStart/propriétés Longueur sont mis à jour correctement), le curseur ne se déplace pas à la fin de la nouvelle chaîne - Il dit exactement où il était au moment du premier appel de GetTextAtLoc. Redessiner la zone de texte ne semble pas avoir d'effet non plus.
En fait, je l'ai fait. Le deuxième appel GetTextAtLoc sélectionne "SomeOfMyOwn" et la requête SelectionLength suivante obtient la longueur du littéral ci-dessus. – shadeMe
RTB peut être un peu "ombragé" parfois avec des sélections; Avez-vous essayé la méthode Select à l'aide de Select (SelectionStart, SelecitonLength) – riffnl
Je ne l'ai pas fait. Va le faire, – shadeMe