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

Windows フォーム TextBox コントロール内のテキストをプログラムで選択できます。 たとえば、特定の文字列を検索する関数を作成する場合、検出された文字列の位置を視覚的に通知するテキストを選択できます。

テキストをプログラムで選択するには

  1. 選択するテキストの先頭に SelectionStart プロパティを設定します。

    SelectionStart プロパティは、テキストの文字列内の挿入ポイントを示す数値であり、左端の位置が 0 になります。 SelectionStart プロパティがテキスト ボックス内の文字数以上に設定されている場合、挿入ポイントは最後の文字の後ろに配置されます。

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

    SelectionLength プロパティは、挿入ポイントの幅を設定する数値です。 SelectionLength を 0 より大きい数値に設定すると、現在の挿入ポイントから、設定した数の文字が選択されます。

  3. (省略可能) SelectedText プロパティを使用して、選択されたテキストにアクセスします。

    次のコードでは、コントロールの Enter イベントが発生したときに、テキスト ボックスの内容を選択します。 この例では、テキスト ボックスに、null または空の文字列ではない Text プロパティの値があるかどうかを確認します。 テキスト ボックスがフォーカスを受け取ると、テキスト ボックス内の現在のテキストが選択されます。 TextBox1_Enter イベント ハンドラーはコントロールにバインドされる必要があります。詳細については、「方法: Windows フォームで実行時にイベント ハンドラーを作成する」を参照してください。

    この例をテストするには、テキスト ボックスにフォーカスが移動するまで Tab キーを押します。 テキスト ボックス内をクリックすると、テキストは選択解除されます。

    Private Sub TextBox1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Enter  
       If (Not String.IsNullOrEmpty(TextBox1.Text)) Then  
          TextBox1.SelectionStart = 0  
          TextBox1.SelectionLength = TextBox1.Text.Length  
       End If  
    End Sub  
    
    private void textBox1_Enter(object sender, System.EventArgs e){  
       if (!String.IsNullOrEmpty(textBox1.Text))  
       {  
          textBox1.SelectionStart = 0;  
          textBox1.SelectionLength = textBox1.Text.Length;  
       }  
    }  
    
    private:  
       void textBox1_Enter(System::Object ^ sender,  
          System::EventArgs ^ e) {  
       if (!System::String::IsNullOrEmpty(textBox1->Text))  
       {  
          textBox1->SelectionStart = 0;  
          textBox1->SelectionLength = textBox1->Text->Length;  
       }  
    }  
    

関連項目