特定の検索オプションを適用し、 RichTextBox コントロール内のテキストで、特定の位置にある文字列を検索します。
Overloads Public Function Find( _
ByVal str As String, _ ByVal start As Integer, _ ByVal options As RichTextBoxFinds _) As Integer
[C#]
public int Find(stringstr,intstart,RichTextBoxFindsoptions);
[C++]
public: int Find(String* str,intstart,RichTextBoxFindsoptions);
[JScript]
public function Find(
str : String,start : int,options : RichTextBoxFinds) : int;
パラメータ
- str
コントロール内で検索するテキスト。 - start
コントロールのテキスト内で検索を開始する位置。 - options
RichTextBoxFinds 値のビットごとの組み合わせ。
戻り値
コントロール内の検索文字列が見つかった位置。
解説
Find メソッドは、 str パラメータに指定されたテキストを検索し、コントロール内の最初に見つかった検索文字列の位置を返します。プロパティが負の値を返す場合は、検索対象の文字列がコントロールの内容の中には見つからなかったことを示します。このメソッドを使用して、コントロールのユーザーが使用できる検索機能を作成できます。このメソッドを使用して、テキストを検索し、特定の書式に置換することもできます。たとえば、ユーザーがコントロールに日付を入力した場合、コントロールの SaveFile メソッドを使用する前に、 Find メソッドを使用してドキュメント内のすべての日付を検索し、見つかった日付を適切な書式に置換できます。
このバージョンの Find メソッドを使用すると、検索条件の拡張または絞り込みができるオプションを指定できます。検索語の大文字と小文字を区別するオプション、または語の一部ではなく全体を検索するオプションを指定できます。 options パラメータで RichTextBoxFinds.Reverse 列挙体を指定することにより、ドキュメントの上部から下部へという既定の方向ではなく、下部から上部という方向でテキストを検索できます。このバージョンの Find メソッドを使用すると、コントロールのテキスト内で検索を開始する位置を指定して、テキストの検索範囲を絞り込むこともできます。この機能により、既に検索した可能性があるテキストや、検索対象として指定したテキストが含まれていないと判明している場所を検索範囲から外すことができます。 RichTextBoxFinds.Reverse 値が options パラメータに指定されている場合は、このバージョンの Find メソッドを使用しているときにドキュメントの下部から検索が開始されるため、start パラメータは逆方向の検索が終了する位置を示します。
メモ 文字列をパラメータとして受け入れる Find メソッドでは、 RichTextBox 内の複数行に含まれるテキストは検索できません。このような検索を実行すると、値 -1 が返されます。
使用例
[Visual Basic, C#, C++] RichTextBox の内容全体で文字列を検索し、最初に見つかった文字列をメソッドのテキスト パラメータに渡す例を次に示します。検索開始位置は、メソッドの start パラメータで指定します。 RichTextBox 内で検索文字列が見つかると、見つかったテキストの最初の文字のインデックス位置が返され、見つかったテキストが強調表示されます。それ以外の場合は -1 の値が返されます。この例では、指定した検索文字列の大文字と小文字を一致させる検索オプションも指定されています。この例は、このメソッドが richTextBox1
という名前の RichTextBox を保持する Form のクラス内にあることを前提にしています。この例を使用して、検索テキストの最初のインスタンスが見つかったら、"Find Next" 入力操作を実行して、そのテキストの他のインスタンスを検索できます。
Public Function FindMyText(text As String, start As Integer) As Integer
' Initialize the return value to false by default.
Dim returnValue As Integer = - 1
' Ensure that a search string has been specified and a valid start point.
If text.Length > 0 And start >= 0 Then
' Obtain the ___location of the search string in richTextBox1.
Dim indexToText As Integer = richTextBox1.Find(text, start, _
RichTextBoxFinds.MatchCase)
' Determine whether the text was found in richTextBox1.
If indexToText >= 0 Then
returnValue = indexToText
End If
End If
Return returnValue
End Function
[C#]
public int FindMyText(string text, int start)
{
// Initialize the return value to false by default.
int returnValue = -1;
// Ensure that a search string has been specified and a valid start point.
if (text.Length > 0 && start >= 0)
{
// Obtain the ___location of the search string in richTextBox1.
int indexToText = richTextBox1.Find(text, start, RichTextBoxFinds.MatchCase);
// Determine whether the text was found in richTextBox1.
if(indexToText >= 0)
{
returnValue = indexToText;
}
}
return returnValue;
}
[C++]
public:
int FindMyText(String* text, int start)
{
// Initialize the return value to false by default.
int returnValue = -1;
// Ensure that a search string has been specified and a valid start point.
if (text->Length > 0 && start >= 0)
{
// Obtain the ___location of the search string in richTextBox1.
int indexToText = richTextBox1->Find(text, start, RichTextBoxFinds::MatchCase);
// Determine whether the text was found in richTextBox1.
if(indexToText >= 0)
{
returnValue = indexToText;
}
}
return returnValue;
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
参照
RichTextBox クラス | RichTextBox メンバ | System.Windows.Forms 名前空間 | RichTextBox.Find オーバーロードの一覧