テキストボックスのキャレットを文字列の末尾に移動させるには?.NET TIPS

» 2005年02月25日 05時00分 公開
[一色政彦デジタルアドバンテージ]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「.NET TIPS」のインデックス

連載目次

 Windowsフォームで使用するテキストボックスは、次の画面例のように、新たにフォーカスを受け取ると、テキストボックス内に入力された文字列全体を選択状態にする仕様になっている。

フォーカス時に文字列が全選択されてしまう例

 この仕様では、ユーザーの入力により既存の文字列が消えてしまう。本稿では、テキストボックスに入力フォーカスが移動した際に文字列を全選択せず、次の画面のように、その文字列の末尾にキャレットを移動する方法について解説する。

フォーカス時に文字列の末尾にキャレットが移動する例

 まず、キャレットの位置の移動はテキストボックス(TextBoxコントロール)のSelectメソッドにより可能だ。このメソッド呼び出しを、テキストボックスがフォーカスを受け取ったときに発行されるEnterイベントのイベント・ハンドラ内に記述すればよい。このイベント・ハンドラは具体的には次のようになる。

private void textBox2_Enter(object sender, System.EventArgs e)
{
  this.textBox2.Select(this.textBox2.Text.Length, 0);
}

フォーカスを受けたときにテキストボックス文字列の末尾にキャレットを移動するコード(C#)

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。