vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Text suchen und markieren 
Autor: Leberkas
Datum: 06.03.18 15:53

Hallo,

so suche ich ein einer Richtextbox nach einem Wort und lasse es markieren.
If RichTextBox1.Text.Contains(TextBox1.Text) Then
            RichTextBox1.Find(TextBox1.Text)
            RichTextBox1.SelectionBackColor = Color.Red
        End If
Das gesuchte Wort ist mehrmals vorhanden. Leider wird immer nur das erste angezeigt.
Was muss ich machen, damit alle gefunden Wörter gleich angezeigt werden ?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Text suchen und markieren 
Autor: Manfred X
Datum: 06.03.18 19:06

Hallo!

So vielleicht .....

Public Class frmMarker
 
    Dim rtf As New RichTextBox With
        {.Parent = Me, .Height = 400, .Width = 400, .HideSelection = False}
    Dim WithEvents txt As New TextBox With
        {.Parent = Me, .Top = 410, .Width = 400}
 
 
    Private Sub frmMarker_Load(sender As Object, _
        e As EventArgs) Handles MyBase.Load
 
        Me.Width = 420
        Me.Height = 480
 
        Dim sb As New System.Text.StringBuilder(1024)
        For i As Integer = 0 To 99
            sb.Append _
            ("Das ist ein Demonstrations-Satz zum Zwecke der Erstellung eines" & _
            "Textes.")
            sb.Append(vbNewLine)
        Next i
        rtf.Text = sb.ToString
    End Sub
 
 
    Private Sub txt_KeyDown(sender As Object, _
        e As KeyEventArgs) Handles txt.KeyDown
 
        If e.KeyCode = Keys.Return AndAlso _
            Not String.IsNullOrEmpty(txt.Text) Then
 
            Me.Text = MarkFoundTextPassage(txt.Text).ToString & " Fundstellen"
        End If
    End Sub
 
 
    Private Function MarkFoundTextPassage(ByVal mrk As String,
               Optional ByVal CLEARSELECTION As Boolean = True) As Integer
 
        Dim c As Integer = 0
        With rtf
            If CLEARSELECTION Then
                .SelectionStart = 0
                .SelectionLength = .Text.Length
                .SelectionColor = .ForeColor
                .SelectionBackColor = .BackColor
                .SelectionLength = 0
            End If
            Dim pos As Integer = -1
            Do
                pos = .Find(mrk, pos + 1, .Text.Length, RichTextBoxFinds.None)
                If pos < 0 Then
                    Return c
                End If
                .SelectionStart = pos
                .SelectionLength = mrk.Length
                .SelectionColor = Color.White
                .SelectionBackColor = Color.Blue
                c += 1
            Loop While pos >= 0
        End With
        Return c
    End Function
End Class
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel