テキストボックスのテキストの最後にカーソルを設定する

2013年12月06日に質問されました。  ·  閲覧回数 186.1k回  ·  ソース

Anoushka Seechurn picture
2013年12月06日

文字列が表示されたテキストボックスがすでにあります。 カーソルをテキストボックスに移動するには、すでに実行しています

txtbox.Focus();

しかし、テキストボックスの文字列の最後にカーソルを置くにはどうすればよいですか?

回答

Panu Oksala picture
2013年12月06日
135

Windowsフォームの場合、 txtbox.SelectionStartおよびtxtbox.SelectionLengthプロパティを使用してカーソル位置(および選択)を制御できます。 キャレットを終了するように設定する場合は、これを試してください。

txtbox.SelectionStart = txtbox.Text.Length;
txtbox.SelectionLength = 0;

WPFについては、この質問を参照してください。

Vishal Suthar picture
2013年12月06日
72

複数のオプションがあります:

txtBox.Focus();
txtBox.SelectionStart = txtBox.Text.Length;

または

txtBox.Focus();
txtBox.CaretIndex = txtBox.Text.Length;

または

txtBox.Focus();
txtBox.Select(txtBox.Text.Length, 0);
Panagiotis Kanavos picture
2013年12月06日
10

TextBox.CaretIndexを使用してキャレットの位置を設定できます。 必要なのが最後にカーソルを設定することだけである場合は、文字列の長さを渡すだけです。例:

txtBox.CaretIndex=txtBox.Text.Length;

キャレットインデックスを長さ1ではなく長さに設定する必要があります。これにより、キャレットが最後の文字の前に配置されます。

Pandian picture
2013年12月06日
1

以下のように試してください...それはあなたを助けます...

ウィンドウフォームの一部の時間Focus()が正しく機能しません。 そのため、 Select()を使用してテキストボックスにフォーカスすることができます。

txtbox.Select(); // to Set Focus
txtbox.Select(txtbox.Text.Length, 0); //to set cursor at the end of textbox