次の方法で共有


方法 : Windows フォーム TextBox コントロールでのカーソル位置を制御する

更新 : 2007 年 11 月

Windows フォーム TextBox コントロールに最初にフォーカスが設定されたとき、テキスト ボックスの既定のカーソル位置は、既存テキストの左端になります。キーボードまたはマウスを使用して、カーソル位置を移動できます。テキスト ボックスからフォーカスが他に移され、再びフォーカスを受け取った場合は、最後にカーソルが置かれていた場所がカーソル位置となります。

場合によっては、この動作により混乱することがあります。ワード プロセッシング アプリケーションでは、新しい文字が既存テキストの後に表示されるという前提で作業します。データ入力アプリケーションでは、新しい文字を入力すると既存の入力が置き換えられるという前提で作業します。SelectionStart プロパティおよび SelectionLength プロパティを使用すると、用途に合わせて動作を変更できます。

TextBox コントロールのカーソル位置を制御するには

  1. SelectionStart プロパティに適切な値を設定します。0 に設定すると、最初の文字のすぐ左側がカーソル位置となります。

  2. (省略可能) SelectionLength プロパティに、選択するテキストの長さを設定します。

    次のコードでは、常にカーソル位置が 0 に戻されます。TextBox1_Enter イベント ハンドラは、コントロールにバインドする必要があります。詳細については、「Windows フォーム内でのイベント ハンドラの作成」を参照してください。

    Private Sub TextBox1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Enter
       TextBox1.SelectionStart = 0
       TextBox1.SelectionLength = 0
    End Sub
    
    private void textBox1_Enter(Object sender, System.EventArgs e) {
       textBox1.SelectionStart = 0;
       textBox1.SelectionLength = 0;
    }
    
    private void textBox1_Enter(Object sender, System.EventArgs e) 
    {
       textBox1.set_SelectionStart(0);
       textBox1.set_SelectionLength(0);
    }
    
    private:
       void textBox1_Enter(System::Object ^  sender,
          System::EventArgs ^  e)
       {
          textBox1->SelectionStart = 0;
          textBox1->SelectionLength = 0;
       }
    

既定でのカーソル位置の表示

TextBox のカーソル位置は、TextBox コントロールがタブ オーダーの最初にある場合にだけ、新しいフォーム上に既定で表示されます。それ以外の場合、カーソル位置は、キーボードまたはマウスを使って TextBox にフォーカスを移動した場合にだけ表示されます。

新しいフォーム上でテキスト ボックスのカーソル位置を既定で表示するには

  • TextBox コントロールの TabIndex プロパティを 0 に設定します。

参照

処理手順

方法 : Windows フォームの TextBox コントロールを使用してパスワード テキスト ボックスを作成する

方法 : 読み取り専用テキスト ボックスを作成する (Windows フォーム)

方法 : 文字列に引用符を挿入する (Windows フォーム)

方法 : Windows フォーム TextBox コントロールでテキストを選択する

方法 : Windows フォーム TextBox コントロールで複数行を表示する

参照

TextBox コントロールの概要 (Windows フォーム)

TextBox

その他の技術情報

TextBox コントロール (Windows フォーム)