Windowsフォームアプリケーションのテキストボックスの選択されているテキスト(文字列)を取得、設定する方法を紹介します。
本記事では、Visual Studioで作成したC#のWindowsフォームアプリケーションのプロジェクトに記述するコードを記載します。
Windowsフォームアプリケーションのプロジェクトを作成する方法については、以下の記事を参照してください。
選択されているテキスト(文字列)の取得
テキストボックスの選択されているテキスト(文字列)を取得するには、System.Windows.Forms名前空間のTextBoxクラスのSelectedTextプロパティを使用します。
1 2 |
// テキストボックスの選択されているテキスト(文字列)を取得する var selectedText = textBox1.SelectedText; |
SelectedTextプロパティは選択されているテキスト(文字列)がない場合は、長さが0の文字列(空文字列)を返します。
選択されているテキスト(文字列)の設定
SelectedTextプロパティでは、テキストボックスの選択されているテキスト(文字列)を設定することもできます。
1 2 |
// 選択されているテキスト(文字列)に「SELECTED_TEXT」を設定する textBox1.SelectedText = "SELECTED_TEXT"; |
1 2 |
// 選択されているテキスト(文字列)をクリアする textBox1.SelectedText = ""; |
サンプルプログラム
テキストボックスの選択されているテキスト(文字列)を取得、設定するサンプルプログラムを作成します。
ユーザーインターフェース
作成するフォームには、文字列を入力するテキストボックス(textBox1)、選択されているテキスト(文字列)を取得するボタン(button1)、選択されているテキスト(文字列)を表示、または選択されているテキスト(文字列)を入力するテキストボックス(textBox2)、選択されているテキスト(文字列)を設定するボタン(button2)を配置します。
文字列を入力するテキストを編集するテキストボックス(textBox1)は、複数行入力できるようにしておきます。
複数行入力可能なテキストボックスの設定については、以下の記事を参考にしてください。
ソースコード
ボタンをクリックした時の処理を実装します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
using System; using System.Windows.Forms; namespace WindowsFormsApp1 { public partial class Form1 : Form { // コンストラクタ public Form1() { InitializeComponent(); // 垂直スクロールバーを表示する this.textBox1.ScrollBars = ScrollBars.Vertical; // フォーカス喪失後もテキストの選択表示を維持する this.textBox1.HideSelection = false; this.button1.Text = "取得"; this.button2.Text = "設定"; } // 取得ボタンをクリックした時のイベントメソッド private void button1_Click(object sender, EventArgs e) { try { // 選択されているテキスト(文字列)を取得する string text = this.textBox1.SelectedText; this.textBox2.Text = text; this.textBox1.Focus(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } // 設定ボタンをクリックした時のイベントメソッド private void button2_Click(object sender, EventArgs e) { try { // 選択されているテキスト(文字列)を設定する string text = this.textBox2.Text; this.textBox1.SelectedText = text; this.textBox1.Focus(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } } |
プログラムの実行
作成したプロジェクトをビルドして実行(デバッグ)します。
文字列を入力するテキストボックス(textBox1)にテキストを入力します。
テキスト(文字列)を選択します。
取得ボタン(button1)をクリックすると、選択されているテキスト(文字列)が表示されます。
今度は選択されているテキスト(文字列)に、設定するテキスト(文字列)を入力します。
設定ボタン(button2)をクリックすると、入力した文字が選択されていた位置に設定(上書き挿入)されます。
本記事でご紹介した選択されているテキスト(文字列)の取得と設定は、System.Windows.Forms名前空間のRichTextBoxクラスにも適用できます。
TextBoxクラス(RichTextBoxクラス)には、SelectedTextプロパティの他に、テキストボックスの文字の入力位置(キャレット)を取得、設定するSelectionStartプロパティ、テキストボックスの選択されているテキストの文字数を取得、設定するSelectionLengthプロパティが用意されています。
SelectionStartプロパティとSelectionLengthプロパティについては、以下の記事を参考にしてください。