Share via


ITextRange.Move(TextRangeUnit, Int32) Método

Definición

Mueve el punto de inserción hacia delante o hacia atrás por el número especificado de unidades. Si el intervalo de texto no es desndegenerado, se contrae a un punto de inserción en la posición inicial o final del intervalo de texto, según el recuento y, a continuación, se mueve.

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

Parámetros

unit
TextRangeUnit

Unidades que se van a mover el punto de inserción. El valor predeterminado es Character.

count
Int32

int

Número de unidades que se van a mover el punto de inserción. El valor predeterminado es 1. Si el recuento es mayor que cero, el punto de inserción avanza hacia delante, hacia el final del artículo. Si count es menor que cero, el punto de inserción se mueve hacia atrás, hacia el principio del artículo. Si count es cero, el intervalo no cambia.

Devoluciones

Int32

int

Número real de unidades que mueve el punto de inserción. Para obtener más información, vea la sección Comentarios.

Comentarios

Si el intervalo se degenera (un punto de inserción), este método intenta mover el punto de inserción el número de unidades especificadas por count.

Si el intervalo no es desndegenerado y el recuento es mayor que cero, este método contrae el intervalo a un punto de inserción al final del intervalo, mueve el punto de inserción resultante hacia delante a un límite de unidad (si aún no está en uno) e intenta mover el recuento : 1 unidadde avance. Si el intervalo no es desndegenerado y el recuento es menor que cero, este método contrae el intervalo a un punto de inserción al principio del intervalo, mueve el punto de inserción resultante hacia atrás a un límite de unidad (si aún no está en uno) e intenta mover el recuento : 1 unidadhacia atrás. Por lo tanto, en ambos casos, contraer un intervalo no degenerado a un punto de inserción, tanto si se mueve al principio o al final de la unidad después del colapso, cuenta como una unidad.

Este método devuelve el número de unidadesque se mueven realmente. Este método nunca mueve el punto de inserción más allá del artículo de este intervalo. Si launidadde recuento movería el punto de inserción antes del principio del artículo, el punto de inserción se mueve al principio del artículo y el resultado se establece en consecuencia. Del mismo modo, si la unidadde recuento movería el punto de inserción más allá del final del artículo, se mueve al final del artículo.

Count corresponde al número de veces que presiona Ctrl+Flecha derecha.

Por ejemplo, si presiona Ctrl+Flecha derecha para las selecciones que se muestran en las dos figuras siguientes, termina con un punto de inserción en la posición de carácter 8, ya que este comando contrae las selecciones en sus extremos (7 y 8, respectivamente) y se mueve al siguiente límite de Word.

Posiciones de caracteres para la cadena de texto La primera selección no incluye el espacio en blanco en la posición del carácter 7, por lo que Ctrl+Flecha derecha se mueve más allá del espacio al límite **Word** en la posición del carácter 8. La posición final del intervalo ya está en un límite **Word** para la segunda selección, por lo que Ctrl+Flecha derecha simplemente contrae la selección en ese límite. Del mismo modo, Ctrl+Flecha izquierda, que para este texto actúa como "Move(Word, -1)". Pero Ctrl+Flecha izquierda contrae la segunda selección en la posición del carácter 4 y, a continuación, se mueve a cero, ya que es el siguiente límite **Word** en la dirección del movimiento.

El argumento return se establece igual al número de unidadesque se mueve el punto de inserción, incluida una unidad para contraer un intervalo no degenerado y moverlo a un límite de unidad . Por lo tanto, si no se produce ningún movimiento y no se produce ningún colapso, como cuando el intervalo es un punto de inserción al final del artículo, el resultado se establece igual a cero. Este enfoque es útil para controlar los bucles de la aplicación que procesan una historia completa.

En ambos casos mencionados anteriormente, la llamada Move(Word, 1) a establece el resultado igual a 1 porque los intervalos estaban contraídos. De forma similar, la llamada Move(Word, -1) a establece el resultado igual a – 1 para ambos casos. Contraer, con o sin mover parte de una unidad a un límite de unidad , cuenta como una unidad movida.

La dirección del movimiento hace referencia al orden de caracteres lógicos en el almacén de respaldo de texto sin formato. Este enfoque evita los problemas de ordenación geométrica, como izquierda frente a derecha y hacia abajo, en software internacional. Estos métodos geométricos siguen siendo necesarios en el motor de edición, por supuesto, porque los teclados tienen teclas de dirección para invocar movimientos geométricos.

Los métodos de la interfaz de usuario de ITextSelection se copian en una fuente de retorno/línea de carro (CR/LF) como si fuera un solo carácter, pero los métodos ITextRange.Move cuentan el retorno de carro/avance de línea (CR/LF) como dos caracteres. Es claramente mejor usar un solo carácter como separador de párrafos, representado por CR, aunque se acepta el carácter separador de párrafo Unicode, 0x2029. En general, el control de edición enriquecido admite retorno de carro/avance de línea (CR/LF), CR, LF, VT (pestaña vertical), FF (fuente de formulario) y 0x2029. Microsoft Rich Edit 2.0 también admite CR/CR/LF para la compatibilidad con versiones anteriores.

Consulte también los métodos ITextRange.MoveStart e ITextRange.MoveEnd, que mueven la unidad de recuento de posición inicial o final del intervalo, respectivamente.

Se aplica a

Consulte también