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

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

在前面提到的两种情况下,调用 Move(Word, 1) 将结果设置为等于 1,因为范围已折叠。 同样,调用 Move(Word, -1) 将结果设置为 -1(对于这两种情况)。 折叠 单元 边界 单位,算作移动 单位。

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

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

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

适用于

另请参阅