テキストボックスに入力されたテキストの一部を選択する

テキストボックスに入力されたテキストの一部を選択するコードを紹介します。

概要

テキストボックス内のテキストを部分選択する場合は、TextBoxのSelectionStartプロパティと、SelectionLegthプロパティを利用します。

プログラム

UI

下図のUIを作成します。テキストボックスを3つ、ボタンを1つ配置します。
テキストボックスに入力されたテキストの一部を選択する:画像1

コード

下記のコードを記述します。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace TextBoxDemo
{
  public partial class FormSelection : Form
  {
    public FormSelection()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      int start = Convert.ToInt32(textBox1.Text);
      int count = Convert.ToInt32(textBox2.Text);

      textBox3.Focus();
      textBox3.SelectionStart = start;
      textBox3.SelectionLength = count;

    }
  }
}

解説

  int start = Convert.ToInt32(textBox1.Text);
  int count = Convert.ToInt32(textBox2.Text);

textBox1, textBox2に入力された値(数値)をint型に変換し変数に格納します。

  textBox3.Focus();

下部のテキストボックス(textBox3)にフォーカスを移します。この処理がなくても動作しますが、フォーカス移動した際に選択が解除されてしまい動作確認しづらいため、今回はフォーカス処理を入れています。

  textBox3.SelectionStart = start;
  textBox3.SelectionLength = count;

textBox3のstart番目の文字からcount個を選択します。アプリの動作は、textBox1に入力された数値の文字数目から、textBox2に入力された数値の個数文字を選択します。

実行結果

プロジェクトを実行します。下図のフォームが表示されます。
テキストボックスに入力されたテキストの一部を選択する:画像2

テキストボックスに値を入力します。今回は以下の文字を入力しました。

  • textBox1 : 4
  • textBox2 : 5
  • textBpx3 : しろくまは北極圏に生息しています
テキストボックスに入力されたテキストの一部を選択する:画像3

[Select]ボタン(button1)をクリックします。下部のテキストボックスの一部分が選択されました。textBox1に入力した数値の文字位置からtextBox2に入力した数値の文字数選択されていることが確認できます。
テキストボックスに入力されたテキストの一部を選択する:画像4

プログラムコードから、テキストボックスの一部を選択することができました。

複数行テキストボックスの場合

複数行テキストの場合も同様の処理です。
下図のUIを作成します。
テキストボックスに入力されたテキストの一部を選択する:画像5

コードは同じものを利用します。

プロジェクトを実行します。下図のフォームが表示されます。
テキストボックスに入力されたテキストの一部を選択する:画像6

テキストを入力します。
テキストボックスに入力されたテキストの一部を選択する:画像7

上部のテキストボックスに選択開始の位置と、選択範囲の長さを数値で入力します。入力後、[Select]ボタンをクリックします。テキストボックス内のテキストが選択されます。
テキストボックスに入力されたテキストの一部を選択する:画像8

選択開市の数値大きくし、画面外が選択されるようにします。この状態で[Select]ボタンをクリックします。画面外のテキストが選択されますが自動でスクロールして選択範囲が見える動作にはなっていないことがわかります。
テキストボックスに入力されたテキストの一部を選択する:画像9

スクロールバーをドラッグしてスクロールすると、テキストが選択されていることが確認できます。
テキストボックスに入力されたテキストの一部を選択する:画像10

AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2015-01-20
Copyright © 1995–2025 iPentec all rights reserverd.