はじめに
RichTextBoxで選択範囲を操作したいときに便利なのが、
SelectionStart、SelectionLength、SelectedText の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は空文字を返す - 選択範囲外のテキストを操作する場合は、
SelectionStartとSelectionLengthを適切に設定する必要がある SelectionLength = 0と設定すると、カーソル位置が選択状態として扱われる
まとめ
SelectionStart… 選択範囲の開始位置SelectionLength… 選択範囲の長さSelectedText… 選択範囲のテキストの取得・置換- これらのプロパティを組み合わせることで、選択範囲に対する操作を細かく制御できる
選択範囲をプログラムで扱うことで、テキストエディタや装飾ツールをより強力にカスタマイズできます。
Please follow and like us:

コメント