TextBox(またはRichTextBox)で選択されている文字列の取得と設定テキストボックスで選択されている文字列の取得テキストボックス(またはリッチテキストボックス)で選択されている文字列は、テキストボックスコントロールのSelectedTextプロパティで取得できます。また、テキストボックスで選択されている開始位置はSelectionStartプロパティで、長さはSelectionLengthプロパティで取得ができます。文字列が選択されていない時、SelectionStartプロパティはカレット(カーソル)の位置(挿入位置)を示します。 例えば、TextBoxの内容が「ABCDEFG」で、「CDE」が選択されている時は、SelectedTextが「CDE」、SelectionStartが「2」、SelectionLengthが「3」となります [VB.NET] 'TextBox1で選択されている文字列を表示 Console.WriteLine(TextBox1.SelectedText) 'TextBox1で選択されている開始位置を表示 'TextBox1.SelectionLengthが0の時は、カレットの位置 Console.WriteLine(TextBox1.SelectionStart) 'TextBox1で選択されている文字列の長さを表示 Console.WriteLine(TextBox1.SelectionLength) [C#] //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"という文字列を探し、見つかれば選択状態にしています。 [VB.NET] '"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 [C#] //"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にフォーカスを設定してからテキストを選択状態にしてください。 |
|
Copyright 2002-2008 DOBON!. All rights reserved.
|