[C#][Windows Formsアプリ][TextBox] SelectedTextプロパティで、現在選択されている文字列を取得・変更する

スポンサーリンク

はじめに

TextBox内の一部の文字を選択して、その部分を取得したり置き換えたりしたいときに便利なのが
SelectedTextプロパティ です。
ユーザー操作だけでなく、プログラムから選択範囲を制御して扱うこともできます。

 

SelectedTextプロパティとは?

SelectedText プロパティは、TextBox内で現在選択されている文字列を取得または設定するために使います。

  • 取得 … 現在選択中の文字列を取得できる
  • 設定 … 選択範囲を新しい文字列で置換できる
例:TextBoxに「Hello World」と入力されていて「World」が選択されている場合、
string s = textBox1.SelectedText; は「World」を返します。

 

基本の使い方

選択文字列を取得

string selected = textBox1.SelectedText;
MessageBox.Show("選択された文字: " + selected);

選択文字列を置換

// 選択部分を "C#" に置き換える
textBox1.SelectedText = "C#";

 

実用例:選択範囲を大文字に変換

using System;
using System.Windows.Forms;

namespace SelectedTextSample
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            textBox1.Text = "hello world";
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(textBox1.SelectedText))
            {
                // 選択部分を大文字に変換
                textBox1.SelectedText = textBox1.SelectedText.ToUpper();
            }
        }
    }
}

この例では、TextBoxで文字を選択した状態でボタンを押すと、その部分が大文字に置き換わります。

 

Selectメソッドとの組み合わせ

Select() メソッドと組み合わせることで、プログラムから任意の範囲を選択して加工できます。

// "Hello World" の "World" を選択して置換
textBox1.Text = "Hello World";
textBox1.Select(6, 5);
textBox1.SelectedText = "C#"; // → "Hello C#"

 

注意点

  • 選択されていない場合、SelectedText は空文字を返す
  • 置換時、選択範囲全体が新しい文字列で置き換わる
  • 選択状態の管理には SelectionStartSelectionLength も合わせて利用できる

 

まとめ

  • SelectedText は選択された文字列を取得・設定できるプロパティ
  • Select() と組み合わせると任意範囲の加工が可能
  • テキスト編集や置換処理を作るときに役立つ

次は SelectionStartSelectionLength のプロパティを学ぶと、選択位置をより細かく制御できるようになります。

Please follow and like us:

コメント

タイトルとURLをコピーしました