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

要移动插入点的单位。 默认值为 Character

count
Int32

int

要移动插入点的 单位 数。 默认值为 1。 如果 count 大于零,则插入点向前移动,接近故事末尾。 如果 count 小于零,则插入点向后移动,向故事开头移动。 如果 count 为零,则范围保持不变。

返回

Int32

int

插入点移动的实际 单位 数。 有关详细信息,请参见“备注”部分。

注解

如果范围在) 插入点 (退化,则此方法尝试将插入点移动 计数指定的单位数。

如果范围不生成且 count 大于零,则此方法将范围折叠到范围末尾的插入点,将生成的插入点向前移动到 单位 边界 (如果尚未处于一) ,则尝试向前移动 count - 1 个单位。 如果范围不生成且 count 小于零,则此方法将范围折叠到范围开头的插入点,将生成的插入点向后移动至 单位 边界 (如果尚未处于一个) ,则尝试向后移动 count – 1 个单位。 因此,在这两种情况下,将非退化范围折叠到插入点(无论是移动到折叠后的 单元 的开始还是结束)都算作 一个单位

此方法返回实际移动的 单位数。 此方法永远不会将插入点移出此范围的故事。 如果 计数单位在故事开头之前移动插入点,则插入点将移动到故事开头,并相应地设置结果。 同样,如果 计数单位将插入点移到故事末尾之外,则会将其移动到故事末尾。

Count 对应于按 Ctrl+向右键的次数。

例如,如果按 Ctrl+向右键显示以下两个图中所示的选项,则最终会在字符位置 8 处出现插入点,因为此命令会将选定内容分别折叠 (7 和 8 两端,分别) 并移动到下一个Word边界。

文本字符串的字符位置第一个选定内容不包括字符位置 7 处的空格,因此 Ctrl+向右键将超出空格移动到字符位置 8 处的 **Word** 边界。 对于第二个选定内容,范围的结束位置已处于“Word”边界,因此 Ctrl+向右键只是折叠该边界处的选择。 同样,Ctrl+向左键,此文本的作用类似于“移动 (Word,-1) ”。 但是 Ctrl+向左键折叠字符位置 4 处的第二个选定内容,然后移动到零,因为这是下一个运动方向的Word边界。

返回参数设置为等于插入点移动的 单位数,包括一个 用于 折叠非退化范围并将其移动到 单位边界的单位 。 因此,如果未发生任何运动和折叠,则当范围是故事末尾的插入点时,结果设置为等于零。 此方法可用于控制处理整个故事的应用循环。

在前面提到的两种情况下,调用 Move(Word, 1) 会将结果设置为等于 1,因为范围已折叠。 同样,对于这两种情况,调用 Move(Word, -1) 会将结果设置为 – 1。 折叠(无论是否将 单元 的一部分移动到 单元 边界)计为移动的 单位

运动方向是指纯文本后备存储中的逻辑字符排序。 此方法避免了国际软件中的几何顺序问题,例如左、右、上与下。 当然,编辑引擎中仍然需要此类几何方法,因为键盘具有箭头键来调用几何运动。

ITextSelection UI 方法通过回车/换行符 (CR/LF) 进行备份,就好像它是一个字符一样,但 ITextRange.Move 方法将回车/换行符 (CR/LF) 计算为两个字符。 使用单个字符作为段落分隔符(由 CR 表示)显然更好,尽管接受 Unicode 段落分隔符0x2029。 通常,Rich Edit 控件支持回车/换行符 (CR/LF) 、CR、LF、VT (垂直制表符) 、FF (窗体源) 和0x2029。 Microsoft Rich Edit 2.0 还支持 CR/CR/LF 以实现向后兼容性。

另请参阅 ITextRange.MoveStartITextRange.MoveEnd 方法,它们分别移动范围开始或结束位置 计数单位

适用于

另请参阅