Share via


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

挿入ポイントを移動する単位。 既定値は Character です

count
Int32

int

カーソルを移動する 単位 数。 既定値は 1 です。 count が 0 より大きい場合、カーソルはストーリーの末尾に向かって前方に移動します。 count が 0 未満の場合、挿入ポイントはストーリーの先頭に向かって後方に移動します。 count が 0 の場合、範囲は変更されません。

戻り値

Int32

int

カーソルが移動する 実際の単位 数。 詳細については、「解説」を参照してください。

注釈

範囲が縮退 (挿入ポイント) の場合、このメソッドは count で指定された単位数をカーソル位置に移動しようとします。

範囲が非生成で count が 0 より大きい場合、このメソッドは範囲を範囲の末尾の挿入ポイントに折りたたみ、結果の挿入ポイントを 単位 境界に進み (まだ 1 つでない場合)、 count – 1 単位の前方への移動を試みます。 範囲が非生成で count が 0 未満の場合、このメソッドは範囲の先頭にある挿入ポイントまで範囲を折りたたみ、結果の挿入ポイントを 単位 境界 (まだ 1 つでない場合) に後方に移動し、 count – 1 単位を後方に移動しようとします。 したがって、いずれの場合も、非縮退範囲を挿入点に折りたたみ、折りたたみ後に 単位 の開始または終了に移動するかに関係なく、 単位としてカウントする。

このメソッドは、実際に移動された 単位の数を返します。 このメソッドは、この範囲のストーリーを超えて挿入ポイントを移動することはありません。 カウント単位s がストーリーの先頭の前にカーソルを移動する場合、挿入ポイントはストーリーの先頭に移動され、それに応じて結果が設定されます。 同様に、 カウントユニットs がストーリーの末尾を超えて挿入ポイントを移動する場合は、ストーリーの末尾に移動します。

Count は、Ctrl キーを押しながら右方向キーを押す回数に対応します。

たとえば、次の図の両方に示す選択範囲に対して Ctrl キーを押しながら右方向キーを押すと、文字位置 8 にカーソルが表示されます。これは、このコマンドは選択範囲の両端 (それぞれ 7 と 8) を折りたたみ、次のWord境界に移動するためです。

テキスト文字列の文字位置最初の選択範囲には、文字位置 7 の空白スペースが含まれていないため、Ctrl + 右方向キーを押すと、スペースが文字位置 8 の **Word** 境界に移動します。 範囲の終了位置は、2 番目の選択範囲の **Word** 境界に既に存在するため、Ctrl + 右方向キーを押すだけでその境界の選択範囲が折りたたまれます。 同様に、Ctrl キーを押しながら左方向キーを押すと、このテキストは 'Move(Word, -1) のように動作します。 ただし、Ctrl + ←キーを押すと、文字位置 4 の 2 番目の選択範囲が折りたたまれて 0 に移動します。これは、移動方向の次の **Word** 境界であるためです。

戻り値の引数は、挿入ポイントが移動される 単位の数と同じに設定されます。これは、非生成範囲を折りたたんで 単位 境界に移動するための 1 つの 単位 を含みます。 したがって、ストーリーの末尾の挿入ポイントが範囲である場合と同様に、モーションがなく、折りたたみが発生しない場合、結果は 0 に設定されます。 このアプローチは、ストーリー全体を処理するアプリ ループを制御するのに役立ちます。

前述のどちらの場合も、 を呼び出すと Move(Word, 1) 、範囲が折りたたまれたため、結果は 1 に設定されます。 同様に、 を呼び出すと Move(Word, -1) 、両方のケースで結果が – 1 に設定されます。 単位の一部を単位境界に移動する場合と移動しない場合、折りたたみは単位移動としてカウントされます。

モーションの方向は、プレーンテキスト バッキング ストア内の論理文字の順序を指します。 このアプローチでは、国際的なソフトウェアで、左と右、上、下などの幾何学的順序の問題を回避します。 もちろん、キーボードには幾何学的な動きを呼び出すための矢印キーがあるため、このような幾何学的な方法は編集エンジンで引き続き必要です。

ITextSelection UI メソッドは、復帰/改行 (CR/LF) を 1 文字であるかのようにバックアップしますが、ITextRange.Move メソッドは復帰/改行 (CR/LF) を 2 文字としてカウントします。 単一の文字を CR で表される段落区切り記号として使用することをお勧めしますが、Unicode 段落区切り文字 (0x2029) は受け入れられます。 一般に、リッチ エディット コントロールはキャリッジ リターン/ライン フィード (CR/LF)、CR、LF、VT (垂直タブ)、FF (フォーム フィード)、および0x2029をサポートします。 Microsoft Rich Edit 2.0 では、下位互換性のために CR/CR/LF もサポートされています。

範囲の開始位置カウントユニットまたは終了位置カウントユニットをそれぞれ移動する ITextRange.MoveStart メソッドと ITextRange.MoveEnd メソッドも参照してください。

適用対象

こちらもご覧ください