テキストボックス(またはリッチテキストボックス)で選択されている文字列は、テキストボックスコントロールのSelectedTextプロパティで取得できます。また、テキストボックスで選択されている開始位置はSelectionStartプロパティで、長さはSelectionLengthプロパティで取得ができます。文字列が選択されていない時、SelectionStartプロパティはカレット(カーソル)の位置(挿入位置)を示します。
例えば、TextBoxの内容が「ABCDEFG」で、「CDE」が選択されている時は、SelectedTextが「CDE」、SelectionStartが「2」、SelectionLengthが「3」となります
'TextBox1で選択されている文字列を表示 Console.WriteLine(TextBox1.SelectedText) 'TextBox1で選択されている開始位置を表示 'TextBox1.SelectionLengthが0の時は、カレットの位置 Console.WriteLine(TextBox1.SelectionStart) 'TextBox1で選択されている文字列の長さを表示 Console.WriteLine(TextBox1.SelectionLength)
//TextBox1で選択されている文字列を表示 Console.WriteLine(TextBox1.SelectedText); //TextBox1で選択されている開始位置を表示 //TextBox1.SelectionLengthが0の時は、カレットの位置 Console.WriteLine(TextBox1.SelectionStart); //TextBox1で選択されている文字列の長さを表示 Console.WriteLine(TextBox1.SelectionLength);
テキストボックスで指定した文字列を選択状態にするには、テキストボックスコントロールのSelectionStartプロパティとSelectionLengthプロパティを使います。SelectionStartに選択の開始位置を指定し、SelectionLengthにその長さを指定します。SelectionLengthを0にしてSelectionStartを指定すると、カーソル(カレット)の位置(挿入位置)を変更できます。
例えば、TextBoxの内容が「ABCDEFG」で、「CDE」を選択状態にしたいときは、SelectionStartを「2」にして、SelectionLengthを「3」にします。
また、同様のことはSelectメソッドでも行えます。TextBoxの内容が「ABCDEFG」で、「CDE」を選択状態にしたいときは、「TextBox1.Select(2, 3)」のようにします。
次の例ではテキストボックスTextBox1内で"123"という文字列を探し、見つかれば選択状態にしています。
'"123"という文字列を探して選択状態にする Dim s As String = "123" '探す文字列が見つかる位置を取得する Dim i As Integer = TextBox1.Text.IndexOf(s) If i > -1 Then '見つかった位置を選択開始の位置にする TextBox1.SelectionStart = i '探した文字列の長さを選択する文字列の長さにする TextBox1.SelectionLength = s.Length '同じことをSelectメソッドを使って行うと次のようになる 'TextBox1.Select(i, s.Length) End If
//"123"という文字列を探して選択状態にする string s= "123"; //探す文字列が見つかる位置を取得する int i= TextBox1.Text.IndexOf(s); if (i > -1) { //見つかった位置を選択開始の位置にする TextBox1.SelectionStart = i; //探した文字列の長さを選択する文字列の長さにする TextBox1.SelectionLength = s.Length; //同じことをSelectメソッドを使って行うと次のようになる //TextBox1.Select(i, s.Length); }
テキストボックス内のすべての文字列を選択するには、SelectAllメソッドを使うのがよいでしょう。
補足:TextBoxのHideSelectionプロパティがtrueの場合、上記のような方法でフォーカスのないTextBoxのテキストを選択状態にしても、選択されたようには見えません。これが都合が悪ければ、HideSelectionプロパティをfalseにするか、FocusメソッドでTextBoxにフォーカスを設定してからテキストを選択状態にしてください。
注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。