ITextRange.Move(TextRangeUnit, Int32) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将插入点向前或向后移动指定的 单位数。 如果文本范围是非生成的,它将折叠到文本范围的开始或结束位置处的插入点,具体取决于 计数,然后移动。
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
移动插入点
返回
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.MoveStart 和 ITextRange.MoveEnd 方法,分别移动范围起始位置或结束位置 计数单位 s。