Поделиться через


ITextRange.Move(TextRangeUnit, Int32) Метод

Определение

Перемещает точку вставки вперед или назад по указанному числу единиц . Если текстовый диапазон не является недегенерным, он свернут в точку вставки в начальной или конечной позиции текстового диапазона в зависимости от счетчика, а затем перемещается.

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

Параметры

unit
TextRangeUnit

Единицы для перемещения точки вставки. Значение по умолчанию — символ.

count
Int32

int

Количество единиц для перемещения точки вставки. Значение по умолчанию — 1. Если число больше нуля, точка вставки перемещается вперед к концу истории. Если число меньше нуля, точка вставки перемещается назад к началу истории. Если число равно нулю, диапазон не изменяется.

Возвращаемое значение

Int32

int

Фактическое количество единиц перемещение точки вставки. Дополнительные сведения см. в разделе "Примечания".

Комментарии

Если диапазон дегенерирован (точка вставки), этот метод пытается переместить точку вставки количество единиц, указанных счетчиком.

Если диапазон недегенерируется и число больше нуля, этот метод свернет диапазон до точки вставки в конце диапазона, перемещает результирующий пункт вставки вперед к единице границы (если он еще не находится в одном), а затем пытается переместить счетчика – 1 единицавперед. Если диапазон не является недегенерным и число меньше нуля, этот метод свернет диапазон до точки вставки в начале диапазона, перемещает результирующая точка вставки назад к единице границы (если она еще не находится в одном), а затем пытается переместить счетчика – 1 единицуназад. Таким образом, в обоих случаях удаление недегенерного диапазона до точки вставки, независимо от того, переходите ли в начало или конец единицы после сворачивания, считается единицей.

Этот метод возвращает количество единицфактически перемещаемых. Этот метод никогда не перемещает точку вставки за рамки этого диапазона. Если подсчетединицабудет перемещать точку вставки до начала истории, точка вставки перемещается в начало истории и результат устанавливается соответствующим образом. Аналогичным образом, если подсчетединицбудет перемещать точку вставки за конец истории, она перемещается в конец истории.

Счетчик соответствует количеству нажатий клавиш CTRL+СТРЕЛКА ВПРАВО.

Например, если вы нажимаете клавиши CTRL+СТРЕЛКА ВПРАВО для выбора, показанных в обоих из следующих рисунков, в конечном итоге вы в конечном итоге используется точка вставки в позиции символов 8, так как эта команда сворачивает выбранные элементы в конце (7 и 8 соответственно) и переходит к следующей границе Word.

позиции символов для текстовой строки Первый выбор не включает пустое пространство в позиции символа 7, поэтому CTRL+СТРЕЛКА ВПРАВО перемещается мимо границы **Word** в позиции символа 8. Конечная позиция диапазона уже находится на границе **Word** для второго выбора, поэтому CTRL+СТРЕЛКА ВПРАВО просто свернет выделение на этой границе. Аналогичным образом, CTRL+СТРЕЛКА ВЛЕВО, которая для этого текста действует как Move(Word, -1). Но CTRL+СТРЕЛКА ВЛЕВО свернута второе выделение в позиции символа 4, а затем переходит к нулю, так как это следующая граница **Word** в направлении движения.

Возвращаемый аргумент равен количеству единиц единиц, которые перемещается точка вставки, включая одну единицу для сворачивания неразродного диапазона и перемещения его в единицу границы. Таким образом, если движение и сворачивание не происходит, как если диапазон является точкой вставки в конце истории, результат равен нулю. Этот подход полезен для управления циклами приложений, которые обрабатывают всю историю.

В обоих случаях, упомянутых ранее, вызов Move(Word, 1) задает результат равный 1, так как диапазоны были свернуты. Аналогичным образом вызов Move(Word, -1) задает результат равным – 1 для обоих случаев. Сворачивание или без перемещения части единицы на границу единицы считается единицей.

Направление движения относится к логическому упорядочению в хранилище резервных копий обычного текста. Этот подход позволяет избежать проблем геометрического упорядочения, таких как слева и справа и вверх и вниз, в международном программном обеспечении. Такие геометрические методы по-прежнему необходимы в механизме редактирования, так как клавиатуры имеют клавиши со стрелками для вызова геометрических движений.

Методы пользовательского интерфейса ITextSelection резервное копирование по каналу возврата или линии каретки (CR/LF), как если бы это был один символ, но методы ITextRange.Move подсчитывают возврат каретки или канал строки (CR/LF) как два символа. Явно лучше использовать один символ в качестве разделителя абзаца, который представлен CR, хотя символ разделителя абзаца Юникода, 0x2029, принимается. Как правило, элемент управления расширенными изменениями поддерживает канал возврата и строки каретки (CR/LF), CR, LF, VT (вертикальная вкладка), FF (веб-канал формы) и 0x2029. Microsoft Rich Edit 2.0 также поддерживает CR/CR/LF для обратной совместимости.

См. также методы ITextRange.MoveStart и методы ITextRange.MoveEnd, которые перемещают начальную или конечную позицию диапазона подсчетединиц соответственно.

Применяется к

См. также раздел