ITextRangeProvider.Move(TextUnit, Int32) 方法

定义

将文本范围移动指定数量的文本单位。

public:
 int Move(System::Windows::Automation::Text::TextUnit unit, int count);
public int Move (System.Windows.Automation.Text.TextUnit unit, int count);
abstract member Move : System.Windows.Automation.Text.TextUnit * int -> int
Public Function Move (unit As TextUnit, count As Integer) As Integer

参数

unit
TextUnit

文本单位的边界。

count
Int32

要移动的文本单位数。

正值表示将文本范围向前移动,负值则表示向后移动文本范围,如果为 0,则不会进行任何移动。

返回

实际移动的单位数。 如果新的文本范围端点大于或小于 DocumentRange 端点,则它可能小于请求移动的单位数。

注解

如果需要遍历文本范围的内容,为使 Move 方法成功执行,将在后台进行一系列步骤。

  1. 对文本范围进行了规范化。也就是说,已在 Start 终结点将文本范围折叠为退化范围,这使得 End 终结点成为多余。 若要在文本范围跨越 unit 边界的情况下消除歧义,必须执行此步骤;例如,“{The U}RL https://www.microsoft.com/ 嵌入文本”,其中“{”和“}”是文本范围终结点。

  2. 生成的范围在 DocumentRange 中向后移动到所请求的 unit 边界的开头。

  3. 范围在 DocumentRange 中向前或向后移动所请求的 unit 边界的数目。

  4. 然后通过将 End 终结点移动一个所请求的 unit 边界,范围从退化范围状态扩展开来。

通过移动 & ExpandToEnclosingUnit
如何针对 Move() 和 ExpandToEnclosingUnit() 调整文本范围的示例

文本容器和嵌入对象(如超链接或表格单元格)的文本内容(或内部文本)在 UI 自动化树的控件视图和内容视图中作为单个连续文本流公开,对象边界被忽略。

嵌入对象跨越的文本范围。
含有嵌入对象及其范围跨度的文本流示例

Move 尊重隐藏文本和可见文本。

Move如果控件不支持给定TextUnit的 ,则 延迟到支持的下一个最大 TextUnit

下面列出了从最小单位到最大的订单。

文本不会以任何方式更改,文本范围仅跨越文本的不同部分。

适用于