[C#][Windows Formsアプリ][RichTextBox] SelectionStart、SelectionLength、SelectedTextプロパティで選択範囲のテキスト取得・変更方法

スポンサーリンク

はじめに

RichTextBoxで選択範囲を操作したいときに便利なのが、
SelectionStartSelectionLengthSelectedText の3つのプロパティです。
これらを使うことで、テキストの選択・変更が簡単にできます。

 

SelectionStartプロパティとは?

SelectionStart プロパティは、選択範囲の開始位置を取得または設定します。
文字列内の「開始位置」を指定するもので、0始まりのインデックス番号で扱います。

例:テキスト「こんにちは」と入力されている場合、
SelectionStart = 3 にすると「ち」から選択が始まります。

使用例

richTextBox1.SelectionStart = 5; // 5番目の文字から選択範囲が始まる

 

SelectionLengthプロパティとは?

SelectionLength プロパティは、選択範囲の長さ(選択された文字数)を取得または設定します。
SelectionStart と合わせて使用し、選択範囲を指定します。

使用例

richTextBox1.SelectionLength = 3; // 現在の位置から3文字分を選択

 

SelectedTextプロパティとは?

SelectedText プロパティは、選択されたテキストを取得または設定します。
これを使うと、選択範囲内のテキストを操作できます。

例:テキスト「こんにちは」と入力されている場合、
SelectedText を使うと、選択された部分のテキストが取得できます。

使用例

string selected = richTextBox1.SelectedText;
MessageBox.Show("選択されたテキスト: " + selected);

 

実用例:選択範囲を変更

using System;
using System.Windows.Forms;

namespace RichTextBoxSelectionSample
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            richTextBox1.Text = "こんにちは、世界!";
        }

        private void buttonSelect_Click(object sender, EventArgs e)
        {
            // 「こんにちは」を選択
            richTextBox1.SelectionStart = 0;
            richTextBox1.SelectionLength = 5;
        }

        private void buttonChange_Click(object sender, EventArgs e)
        {
            // 選択された文字列を変更
            richTextBox1.SelectedText = "皆さん";
        }
    }
}

この例では、ボタンをクリックすると「こんにちは」の部分が選択され、
その後「皆さん」に変更されます。

 

SelectionStart / SelectionLength と Textの違い

  • Text … RichTextBox内の全テキストを一括取得・設定(書式なし)
  • SelectionStart / SelectionLength … 選択範囲の開始位置と長さを制御
  • SelectedText … 選択範囲のテキストを取得または置換

例:選択範囲のテキストを置換

richTextBox1.SelectionStart = 5;
richTextBox1.SelectionLength = 3;
richTextBox1.SelectedText = "ABC";  // 「世界」を「ABC」に置換

 

注意点

  • 選択範囲が存在しない場合、SelectedText は空文字を返す
  • 選択範囲外のテキストを操作する場合は、SelectionStartSelectionLength を適切に設定する必要がある
  • SelectionLength = 0 と設定すると、カーソル位置が選択状態として扱われる

 

まとめ

  • SelectionStart … 選択範囲の開始位置
  • SelectionLength … 選択範囲の長さ
  • SelectedText … 選択範囲のテキストの取得・置換
  • これらのプロパティを組み合わせることで、選択範囲に対する操作を細かく制御できる

選択範囲をプログラムで扱うことで、テキストエディタや装飾ツールをより強力にカスタマイズできます。

 

Please follow and like us:

コメント

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