言語

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/ is embedded in text" ("{" と "}" はテキスト範囲のエンドポイントです)。

  2. 結果として得られる範囲は、 DocumentRange 内で、要求された unit 境界の先頭に向かって後方に移動されます。

  3. 範囲は、要求された数のDocumentRange境界によってunit内で前方または後方に移動されます。

  4. その後、要求された 1 つのEnd境界によってunit エンドポイントを移動することで、範囲が縮退した範囲の状態から拡張されます。

Move による範囲の調整 & ExpandToEnclosingUnit Move() と ExpandToEnclosingUnit() に対してテキスト範囲を調整する方法の例

テキスト コンテナーのテキスト コンテンツ (または内部テキスト) と、ハイパーリンクやテーブル セルなどの埋め込みオブジェクトは、コントロール ビューと UI オートメーション ツリーのコンテンツ ビューの両方で、単一の連続テキスト ストリームとして公開されます。オブジェクトの境界は無視されます。

埋め込みオブジェクトによってスパンされるテキスト範囲。 埋め込みオブジェクトとその範囲スパンを含むテキスト ストリームの例

Move は、非表示のテキストと表示されるテキストの両方を尊重します。

Moveは、指定されたTextUnitがコントロールでサポートされていない場合にサポートされる次の最大TextUnitに遅延します。

最小単位から最大値までの順序を次に示します。

テキストは何も変更されず、テキスト範囲はテキストの別の部分にまたがるだけです。

適用対象