Markera ord i en richtextbox
Förord
Detta exempel visar hur man kan markera vissa ord i en RichTextBox.Innehåll
»Här är ett exempel på hur det kan se ut:
1. Skapa ett nytt projekt i Visual Basic. Form1 skapas automatiskt.
2. Placera en CommandButton och en RichTextBox på Form1 och sätt egenskapen Text på RichTextBoxen till: Detta är ett exempel på hur man kan markera vissa ord i en RichTextBox. Det kan vara bra att om man vill göra en editor och markera vissa taggar med olika färger."
3. Lägg till följande kod till Form1.
4. Kör programmet genom att trycka F5 i VB och därefter trycker du på knappen för att markera orden.
För att jag skall veta om kursen är bra eller om den måste skrivas om så rösta gärna här uppe till höger. Skicka gärna ett iMail om du vill kommentera något som är felaktigt eller du tycker borde förtydligas.
/Daniel Albertsson
1. Skapa ett nytt projekt i Visual Basic. Form1 skapas automatiskt.
2. Placera en CommandButton och en RichTextBox på Form1 och sätt egenskapen Text på RichTextBoxen till: Detta är ett exempel på hur man kan markera vissa ord i en RichTextBox. Det kan vara bra att om man vill göra en editor och markera vissa taggar med olika färger."
3. Lägg till följande kod till Form1.
Option Explicit
Private Sub Command1_Click()
HighlightWords RichTextBox1, "text", vbRed
End Sub
Private Function HighlightWords(rtb As RichTextBox, _
sFindString As String, lColor As Long) As Integer
Dim lFoundPos As Long 'Position för första bokstaven som matchar.
Dim lFindLength As Long 'Längd på sträng som skall hittas
Dim lOriginalSelStart As Long
Dim lOriginalSelLength As Long
Dim iMatchCount As Integer 'Antal matchningar
'Sparar startpunkt och längd
lOriginalSelStart = rtb.SelStart
lOriginalSelLength = rtb.SelLength
'Lagra längden på strängen du vill finna och byta
lFindLength = Len(sFindString)
'Försöker hitta första liknande strängar.
lFoundPos = rtb.Find(sFindString, 0, , rtfNoHighlight)
While lFoundPos > 0
iMatchCount = iMatchCount + 1
rtb.SelStart = lFoundPos
'Egenskapen SelLength är satt till 0 så
'fort du ändrar SelStart
rtb.SelLength = lFindLength
rtb.SelColor = lColor
'Försöker hitta nästa matchande ord.
lFoundPos = rtb.Find(sFindString, _
lFoundPos + lFindLength, , rtfNoHighlight)
Wend
'Återställ startpunkten till ursprunglig
'plats och längd
rtb.SelStart = lOriginalSelStart
rtb.SelLength = lOriginalSelLength
'Returnerar antal matchningar
HighlightWords = iMatchCount
End Function
4. Kör programmet genom att trycka F5 i VB och därefter trycker du på knappen för att markera orden.
Avslutningsvis
För att jag skall veta om kursen är bra eller om den måste skrivas om så rösta gärna här uppe till höger. Skicka gärna ett iMail om du vill kommentera något som är felaktigt eller du tycker borde förtydligas./Daniel Albertsson
0 Kommentarer