テキストボックスの選択されているテキストの文字数を取得・設定する [C#] TextBox

Windowsフォームアプリケーションのテキストボックスの選択されているテキストの文字数を取得、設定する方法を紹介します。

本記事では、Visual Studioで作成したC#のWindowsフォームアプリケーションのプロジェクトに記述するコードを記載します。
Windowsフォームアプリケーションのプロジェクトを作成する方法については、以下の記事を参照してください。

Windowsフォームアプリケーションのプロジェクト(ソリューション)を作成する。[C#]
Visual StudioでC#のWindowsフォームアプリケーションのプロジェクト(ソリューション)を作成する方法を記載します。 ...

選択されている文字数の取得

テキストボックスの選択されている文字数を取得するには、System.Windows.Forms名前空間のTextBoxクラスのSelectionLengthプロパティを使用します。
SelectionLengthプロパティは、選択されている文字数を数値(int型)で返します。

選択する文字数の設定

SelectionLengthプロパティでは、テキストボックスの選択する文字数を設定することもできます。

サンプルプログラム

テキストボックスの選択されている文字数を取得、設定するサンプルプログラムを作成します。

ユーザーインターフェース

作成するフォームには、文字列を入力するテキストボックス(textBox1)、選択されている文字数を取得するボタン(button1)、選択されている文字数を表示、または選択する文字数を入力するテキストボックス(numericUpDown1)、選択する文字数を設定するボタン(button2)を配置します。

テキストボックスの選択されている文字数を取得、設定するサンプルプログラムのフォームデザイン

文字列を入力するテキストを編集するテキストボックス(textBox1)は、複数行入力できるようにしておきます。

複数行入力可能なテキストボックスの設定については、以下の記事を参考にしてください。

テキストボックスに複数行の文字列を入力できるように設定する [C#] TextBox
Windowsフォームアプリケーションのテキストボックス(TextBox)に改行(リターン)を入力できるようにする方法を紹介します。 ...

ソースコード

ボタンをクリックした時の処理を実装します。

プログラムの実行

作成したプロジェクトをビルドして実行(デバッグ)します。

テキストボックスの選択されている文字数を取得、設定するサンプルプログラムを実行して起動

文字列を入力するテキストボックス(textBox1)にテキストを入力します。

テキストボックスの選択されている文字数を取得、設定するサンプルプログラムで文字列を入力

テキスト(文字列)を選択します。

テキストボックスの選択されている文字数を取得、設定するサンプルプログラムで文字列を選択

取得ボタン(button1)をクリックすると、選択されている文字数が表示されます。

テキストボックスの選択されている文字数を取得、設定するサンプルプログラムで選択されている文字数を取得して表示

今度は選択する文字数を入力します。

テキストボックスの選択されている文字数を取得、設定するサンプルプログラムで選択する文字数を入力

設定ボタン(button2)をクリックすると、指定した文字数が選択されます。

テキストボックスの選択されている文字数を取得、設定するサンプルプログラムで選択されている文字数位置を設定

SelectionLengthプロパティには、テキストボックスに入力されている文字数を超える位置を指定してもエラーにはなりません。テキストの末尾が選択されます。

ただし、0未満の値を指定すると例外が発生します。

例外メッセージ「’-1′ の InvalidArgument=Value は ‘SelectionLength’ に対して有効ではありません。」

テキストボックスの選択されている文字数を取得、設定するサンプルプログラムでSelectionLengthプロパティに0未満の値を設定した時の例外

本記事でご紹介した選択されている文字数の取得と設定は、System.Windows.Forms名前空間のRichTextBoxクラスにも適用できます。

TextBoxクラス(RichTextBoxクラス)には、SelectionLengthプロパティの他に、テキストボックスの文字の入力位置(キャレット)を取得、設定するSelectionStartプロパティ、テキストボックスの選択されているテキスト(文字列)を取得、設定するSelectedTextプロパティが用意されています。

SelectionLengthプロパティとSelectedTextプロパティについては、以下の記事を参考にしてください。

テキストボックスの文字の入力位置(キャレット)を取得・設定する [C#] TextBox
Windowsフォームアプリケーションのテキストボックスの文字の入力位置(キャレット)を取得、設定する方法を紹介します。 本記事では、...
テキストボックスの選択されているテキスト(文字列)を取得・設定する [C#] TextBox
Windowsフォームアプリケーションのテキストボックスの選択されているテキスト(文字列)を取得、設定する方法を紹介します。 本記事で...