vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: HTML/Internet/Netzwerk · HTML/Email   |   VB-Versionen: VB5, VB621.09.05
HTML-Tags in der RichTextBox farbig darstellen #2

Anbei soll gezeigt werden, wie sich während der Bearbeitung in einer RichTextBox HTML-Tags farbig markiert darstellen lassen.

Autor:   Philip WenigBewertung:     [ Jetzt bewerten ]Views:  11.255 
www.teroca.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Nachfolgend soll gezeigt werden, wie sich während der Bearbeitung in einer RichTextBox HTML-Tags farbig markiert darstellen lassen.

Erstellen Sie hierzu ein neues Projekt mit einer Form und einem RichTextBox-Control und fügen nachfolgenden Code in den Codeteil der Form ein.

Option Explicit
 
Dim bIsTag As Boolean
Dim bIsQuot As Boolean
Private Sub RichTextBox1_KeyPress(KeyAscii As Integer)
  ' Markiert in eine RichTextBox eingegebene HTML-Tags
  ' farblich abgesetzt vom übrigen Text.
 
  ' @author: Philip Wenig
  ' @date: 15.09.2005
  ' @revision:
 
  ' 60 <
  ' 62 >
  ' 61 =
  ' 34 "
  ' 47 /
 
  On Error GoTo SetTagError
  With Me.RichTextBox1
    ' hier wird erstmal geprüft, welches Ascii-Zeichen bei
    ' der Eingabe gedrückt wurde
    Select Case KeyAscii
      ' Slash
      Case 47 ' 47 /
        .SelColor = vbBlue
        .SelBold = False
 
      ' Gleichheitszeichen
      Case 61 ' 61 =
        Select Case bIsTag
          ' wenn sich das Gleichheitszeichen in einem Tag befindet
          Case True
            .SelColor = vbRed
            .SelBold = False
 
          ' wenn sich das Gleichheitszeichen im normalen Textteil befindet
          Case False
            .SelColor = vbBlack
            .SelBold = False
        End Select
 
      ' Anführungszeichen
      Case 34 ' 34 "
        Select Case bIsTag
          ' wenn sich das Anführungszeichen in einem Tag befindet
          Case True
            .SelColor = vbRed
            .SelBold = False
            bIsQuot = IIf(bIsQuot = True, False, True)
 
          ' wenn sich das Anführungszeichen im normalen Textteil befindet
          Case False
            .SelColor = vbBlack
            .SelBold = False
        End Select
 
      ' Spitzklammer kleiner
      Case 60 ' 60 <
        .SelColor = vbBlue
        .SelBold = False
        bIsTag = True
 
      ' Spitzklammer größer
      Case 62 ' 62 >
        .SelColor = vbBlue
        .SelBold = False
        bIsTag = False
 
        ' wenn es sich um keines der KeyAscii-Zeichen handelt
        Case Else
          Select Case bIsTag
            ' wenn sich der sonstige Text in einem Tag befindet
            Case True
              Select Case bIsQuot
                ' wenn sich der sonstige Text in einem Tag und
                ' innerhalb eines Anführungszeichens befindet
                Case True
                  .SelColor = vbRed
                  .SelBold = False
 
                ' wenn sich der sonstige Text in einem Tag aber
                ' außerhalb eines Anführungszeichens befindet
                Case False
                  .SelColor = vbBlue
                  .SelBold = False
              End Select
 
            ' wenn sich der sonstige Text im normalen Textteil befindet
            Case False
              .SelColor = vbBlack
              .SelBold = False
          End Select
      End Select
  End With
  Exit Sub
 
SetTagError:
  MsgBox "Beim Ediitieren ist ein Fehler aufgetreten.", vbOKOnly, "HTML-Tags"
End Sub

Natürlich müsste man beim Einlesen eines HTML-Dokuments bereits eine Formatierung der HTML-Elemente vornehmen.
Beim Einlesen bzw. Schreiben ist auf HTML-Sonderzeichen zu achten, bzw. sind diese entsprechend dem HTML-Standard umwandeln, worauf dieser Tipp-Beitrag aber nicht eingeht.