3

これは非常に簡単かもしれません。

WinFormにテキストボックスText="ABCDEFGH"があります。「BCD」を選択し、Iビーム(カーソル、カレット、点滅する「|」)を「A」と「B」の間に残す必要があります。SelectionStart=1およびSelectionLenght=3の設定は機能せず、理解できません。

4

2 に答える 2

0

ドキュメントに記載されているようにSelectionLength、を0に設定する必要があります。

SelectionStartをテキストボックス内のキャレットの移動先の位置に設定し、SelectionLengthプロパティをゼロ(0)の値に設定することにより、プログラムでテキストボックス内のキャレットを移動できます。

問題がBCDが実際に選択されていることであるが、カーソルをBの前に戻したい場合は、テキストを選択するとカーソルがテキストの最後に移動するため、フレームワークのプロパティを介してそれを行うことはできないと思います。 。ここに記載されているように、座標とネイティブの相互運用機能を使用する必要があります。

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool GetCaretPos(out Point lpPoint);

次に、 SetCaretPosを呼び出すことができます。

于 2012-02-01T22:30:19.427 に答える
0

プロパティをTrueに設定するTextBox.Multilineと、負の選択長を使用してこれを行うことができます。負の値を許可Select()しないため、オーバーロードを使用する必要があります。SelectionLength

textBox.Select(1 + 3, -3);
于 2019-01-30T20:32:29.567 に答える