次の方法で共有


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 Range
テキスト範囲を Move() と ExpandToEnclosingUnit() に対して調整する方法の例

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

埋め込みオブジェクトにまたがるテキスト範囲。
埋め込みオブジェクトとその範囲を含むテキスト ストリームの例

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

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

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

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

適用対象