0
Public Sub textcolorchanged()
    Dim searchword As String = RichTextBox2.Text.ToString.Trim

    Dim index1 As Integer = 0

    While index1 <> -1
      If (index1 < ORGFILETXT.Text.Length) Then
        index1 = ORGFILETXT.Find(searchword, index1, RichTextBoxFinds.None)
        'If (index1 <= ORGFILETXT.TextLength) Then
            If index1 <> -1 Then
                ORGFILETXT.SelectionStart = index1
                ORGFILETXT.SelectionLength = searchword.Length
                ORGFILETXT.SelectionColor = Color.Red
                index1 = index1 + searchword.Length
            End If
        'End If

      Else
          index1 = -1
      End if
    End While
End Sub

datagridview1行の単語を検索し、リッチテキストボックスで検索単語を強調表示しました。text(テキスト全体が含まれています)datagridview1のマウスクリックとキーアップおよびキーダウンイベントでこのメソッドを呼び出しました

検索ワードのdatagridview1行をマウスクリックしてキーアップおよびキーダウンすると、リッチテキストボックステキストで単語が強調表示されますが、フルテキストを取得するときに色がどのように変更されますか?plsは私を助けます

4

1 に答える 1

1

私のドキュメントを読むとRichTextBox.Find Method (String, Int32, RichTextBoxFinds)、文字列が見つからない場合、戻り値は負ですが、-1ではないのではないかと思われます。
この場合、コードが選択色の設定に失敗する可能性があります。

この行を変更してみてください

If index1 <> -1 Then 

If index1 >= 0 Then 

MSDNの例も参照してください

于 2012-06-22T13:38:31.453 に答える