Partager via


ITextRange.Move(TextRangeUnit, Int32) Méthode

Définition

Déplace le point d’insertion vers l’avant ou vers l’arrière selon le nombre d’unités spécifié. Si la plage de texte n’est pas dégénérée, elle est réduite à un point d’insertion à la position de début ou de fin de la plage de texte, en fonction du nombre, puis est déplacée.

public:
 int Move(TextRangeUnit unit, int count);
int Move(TextRangeUnit const& unit, int const& count);
public int Move(TextRangeUnit unit, int count);
function move(unit, count)
Public Function Move (unit As TextRangeUnit, count As Integer) As Integer

Paramètres

unit
TextRangeUnit

Unités pour déplacer le point d’insertion. La valeur par défaut est Caractère.

count
Int32

int

Nombre d’unités pour déplacer le point d’insertion. La valeur par défaut est 1. Si le nombre est supérieur à zéro, le point d’insertion se déplace vers l’avant, vers la fin de l’histoire. Si le nombre est inférieur à zéro, le point d’insertion se déplace vers l’arrière, vers le début de l’histoire. Si le nombre est égal à zéro, la plage est inchangée.

Retours

Int32

int

Nombre réel d’unités déplacées par le point d’insertion. Pour plus d'informations, consultez la section Notes.

Remarques

Si la plage est dégénérée (point d’insertion), cette méthode tente de déplacer le point d’insertion du nombre d’unités spécifiées par nombre.

Si la plage n’est pas dégénérée et que le nombre est supérieur à zéro, cette méthode réduit la plage à un point d’insertion à la fin de la plage, déplace le point d’insertion résultant vers l’avant vers une limite d’unité (s’il n’est pas déjà à une unité), puis tente de déplacer le nombre d’unités vers l’avant. Si la plage n’est pas dégénérée et que le nombre est inférieur à zéro, cette méthode réduit la plage à un point d’insertion au début de la plage, déplace le point d’insertion résultant vers l’arrière vers une limite d’unité (s’il n’en est pas déjà à une), puis tente de déplacer le nombre – 1 unités vers l’arrière. Ainsi, dans les deux cas, l’effondrement d’une plage non dégénérée à un point d’insertion, qu’il s’agisse d’un déplacement au début ou à la fin de l’unité après l’effondrement, compte comme unité.

Cette méthode retourne le nombre d’unitésréellement déplacées. Cette méthode ne déplace jamais le point d’insertion au-delà de l’histoire de cette plage. Si les unitésde nombre déplacent le point d’insertion avant le début de l’histoire, le point d’insertion est déplacé vers le début de l’histoire et le résultat est défini en conséquence. De même, si le nombred’unitésdéplace le point d’insertion au-delà de la fin de l’histoire, il est déplacé vers la fin de l’histoire.

Le nombre correspond au nombre de fois où vous appuyez sur Ctrl+Flèche droite.

Par exemple, si vous appuyez sur Ctrl+Flèche droite pour les sélections affichées dans les deux figures suivantes, vous vous retrouvez avec un point d’insertion à la position de caractère 8, car cette commande réduit les sélections à leurs extrémités (7 et 8, respectivement) et passe à la limite Word suivante.

Positions des caractères pour la chaîne de texte Comme la première sélection n’inclut pas l’espace vide à la position de caractère 7, Ctrl+Flèche droite passe au-delà de l’espace jusqu’à la limite **Word** à la position de caractère 8. La position de fin de la plage se trouve déjà à une limite **Word** pour la deuxième sélection. Par conséquent, Ctrl+Flèche droite réduit simplement la sélection à cette limite. De même, Ctrl+Flèche gauche, qui pour ce texte agit comme « Move(Word, -1) ». Mais Ctrl+Flèche gauche réduit la deuxième sélection à la position de caractère 4, puis passe à zéro, car il s’agit de la limite **Word** suivante dans le sens du mouvement.

L’argument de retour est défini sur le nombre d’unitésque le point d’insertion est déplacé, y compris une unité pour réduire une plage non dégénérée et la déplacer vers une limite d’unité . Par conséquent, si aucun mouvement et aucun effondrement ne se produisent, comme lorsque la plage est un point d’insertion à la fin de l’histoire, le résultat est défini sur zéro. Cette approche est utile pour contrôler les boucles d’application qui traitent toute une histoire.

Dans les deux cas mentionnés précédemment, l’appel Move(Word, 1) définit le résultat égal à 1, car les plages ont été réduites. De même, l’appel Move(Word, -1) définit le résultat égal à – 1 dans les deux cas. L’effondrement, avec ou sans déplacement d’une partie d’une unité vers une limite d’unité , compte comme une unité déplacée.

Le sens du mouvement fait référence à l’ordre logique des caractères dans le magasin de stockage de texte brut. Cette approche permet d’éviter les problèmes de classement géométrique, tels que gauche par rapport à droite et vers le haut par rapport au bas, dans les logiciels internationaux. Ces méthodes géométriques sont toujours nécessaires dans le moteur d’édition, bien sûr, car les claviers ont des touches de direction pour appeler des mouvements géométriques.

Les méthodes D’interface utilisateur ITextSelection sont sauvegardées sur un retour chariot/flux de ligne (CR/LF) comme s’il s’agissait d’un seul caractère, mais les méthodes ITextRange.Move comptent le retour chariot/flux de ligne (CR/LF) comme deux caractères. Il est clairement préférable d’utiliser un caractère unique comme séparateur de paragraphe, qui est représenté par CR, bien que le caractère de séparateur de paragraphe Unicode, 0x2029, soit accepté. En général, le contrôle d’édition enrichi prend en charge le retour chariot/flux de ligne (CR/LF), CR, LF, VT (onglet vertical), FF (flux de formulaire) et 0x2029. Microsoft Rich Edit 2.0 prend également en charge CR/CR/LF pour la compatibilité descendante.

Consultez également les méthodes ITextRange.MoveStart et ITextRange.MoveEnd, qui déplacent les unités de nombre de positions de début ou de fin, respectivement.

S’applique à

Voir aussi