ITextRange.Move(TextRangeUnit, Int32) Metodo

Definizione

Sposta il punto di inserimento avanti o indietro in base al numero specificato di unità. Se l'intervallo di testo non è generato, viene compresso in un punto di inserimento in corrispondenza della posizione iniziale o finale dell'intervallo di testo, a seconda del conteggio e quindi viene spostato.

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

Parametri

unit
TextRangeUnit

Unità di misura per spostare il punto di inserimento. Il valore predefinito è Character.

count
Int32

int

Numero di unità per spostare il punto di inserimento. Il valore predefinito è 1. Se count è maggiore di zero, il punto di inserimento si sposta in avanti, verso la fine del brano. Se count è minore di zero, il punto di inserimento si sposta all'indietro, verso l'inizio del brano. Se count è zero, l'intervallo rimane invariato.

Restituisce

Int32

int

Numero effettivo di unità di spostamento del punto di inserimento. Per altre informazioni, vedere la sezione Osservazioni.

Commenti

Se l'intervallo viene degenerato (un punto di inserimento), questo metodo tenta di spostare il punto di inserimento il numero di unità specificate dal conteggio.

Se l'intervallo non è generato e count è maggiore di zero, questo metodo comprime l'intervallo in un punto di inserimento alla fine dell'intervallo, sposta il punto di inserimento risultante in avanti a un limite di unità (se non è già presente in uno), quindi tenta di spostare il conteggio - 1 unitàin avanti. Se l'intervallo non viene generato e il conteggio è minore di zero, questo metodo comprime l'intervallo a un punto di inserimento all'inizio dell'intervallo, sposta il punto di inserimento risultante all'indietro a un limite di unità (se non è già in uno), quindi tenta di spostare il conteggio - 1 unitàall'indietro. Pertanto, in entrambi i casi, comprime un intervallo non generato in un punto di inserimento, sia che si passi all'inizio o alla fine dell'unità dopo il collasso, viene conteggiato come unità.

Questo metodo restituisce il numero di unitàeffettivamente spostate. Questo metodo non sposta mai il punto di inserimento oltre il brano di questo intervallo. Se countunits sposta il punto di inserimento prima dell'inizio del brano, il punto di inserimento viene spostato all'inizio del brano e il risultato viene impostato di conseguenza. Analogamente , se countunits sposta il punto di inserimento oltre la fine del brano, viene spostato alla fine del brano.

Count corrisponde al numero di volte in cui si preme CTRL+FRECCIA DESTRA.

Ad esempio, se si preme CTRL+FRECCIA DESTRA per le selezioni visualizzate in entrambe le figure seguenti, si raggiunge un punto di inserimento nella posizione del carattere 8, perché questo comando comprime le selezioni alle loro estremità (rispettivamente 7 e 8) e si sposta al limite Word successivo.

Posizioni dei caratteri per la stringa di testo La prima selezione non include lo spazio vuoto nella posizione del carattere 7, quindi CTRL+Freccia destra passa oltre lo spazio al limite **Word** nella posizione del carattere 8. La posizione finale dell'intervallo è già in corrispondenza di un limite **Word** per la seconda selezione, quindi CTRL+freccia destra comprime la selezione in corrispondenza di tale limite. Analogamente, CTRL+freccia sinistra, che per questo testo agisce come 'Move(Word, -1)'. Ctrl+Freccia sinistra comprime la seconda selezione in corrispondenza della posizione del carattere 4 e quindi si sposta su zero, perché questo è il successivo limite **Word** nella direzione del movimento.

L'argomento restituito è impostato uguale al numero di unitàche il punto di inserimento viene spostato, inclusa un'unità per comprimere un intervallo non generato e spostarlo in un limite di unità . Quindi, se non si verifica alcun movimento e nessun collasso, come quando l'intervallo è un punto di inserimento alla fine del brano, il risultato viene impostato su zero. Questo approccio è utile per controllare i cicli di app che elaborano un intero brano.

In entrambi i casi menzionati in precedenza, la chiamata Move(Word, 1) imposta il risultato uguale a 1 perché gli intervalli sono stati compressi. Analogamente, la chiamata Move(Word, -1) imposta il risultato su - 1 per entrambi i casi. Comprimere, con o senza spostare parte di un'unità in un limite di unità , viene conteggiato come unità spostata.

La direzione del movimento fa riferimento all'ordinamento dei caratteri logici nell'archivio backing di testo normale. Questo approccio evita i problemi di ordinamento geometrico, ad esempio a sinistra rispetto a destra e verso destra e verso il basso, nel software internazionale. Tali metodi geometrici sono ancora necessari nel motore di modifica, naturalmente, perché le tastiere hanno tasti di direzione per richiamare movimenti geometrici.

I Metodi dell'interfaccia utente ITextSelection eseguono il backup su un ritorno a capo/avanzamento riga (CR/LF) come se fosse un singolo carattere, ma i metodi ITextRange.Move conteggiano ritorno a capo/avanzamento riga (CR/LF) come due caratteri. È chiaramente preferibile usare un singolo carattere come separatore di paragrafo, rappresentato da CR, anche se il carattere separatore di paragrafo Unicode, 0x2029, viene accettato. In generale, il controllo di modifica avanzato supporta ritorno a capo/avanzamento riga (CR/LF), CR, LF, VT (scheda verticale), FF (avanzamento modulo) e 0x2029. Microsoft Rich Edit 2.0 supporta anche CR/CR/LF per la compatibilità con le versioni precedenti.

Vedere anche i metodi ITextRange.MoveStart e ITextRange.MoveEnd, che spostano rispettivamente l'unità di conteggio di posizioni iniziale o finale dell'intervallo.

Si applica a

Vedi anche