次の方法で共有


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

カーソルを移動する単位。 既定値は文字です。

count
Int32

int

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

戻り値

Int32

int

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

注釈

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

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

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

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

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

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

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

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

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

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

ITextRange.MoveStart および ITextRange.MoveEnd メソッド も参照してください。このメソッドは、範囲の開始位置または終了位置をそれぞれ単位 数 カウント移動します。

適用対象

こちらもご覧ください