vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

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

VB.NET - Ein- und Umsteiger
Re: Texteingaben in zweiter Textbox übernehmen (BBCode-Editor) 
Autor: Manfred X
Datum: 10.04.14 11:52

Die Konvertierung ist einfacher, wenn Du den umgekehrten Weg gehst,
also die BBCode-Textattribute in eine Textbox eingibst und sie in
einer RTF-Box entsprechend anzeigen läßt.

Als kleines Beispiel habe ich das für die Fontstyle-Attribute
Fett, Kursiv, Unterstreichen und Durchstreichen programmiert.
Public Class frmBBCode
 
    Dim tbo As New TextBox With _
         {.Parent = Me, .Width = 300, .Height = 300, .Multiline = True}
 
    Dim WithEvents btnConvert As New Button With _
         {.Parent = Me, .Width = 100, .Height = 30, .Top = 330, _
          .Text = "Konvertieren"}
 
    Dim rbo As New RichTextBox With _
         {.Parent = Me, .Width = 300, .Height = 300, .Top = 380}
 
 
    Private Sub frmBBCode_Load(sender As System.Object, _
        e As System.EventArgs) Handles MyBase.Load
 
        Me.MinimumSize = New Size(350, 700)
    End Sub
 
 
    Private Sub btnConvert_Click(sender As Object, _
        e As System.EventArgs) Handles btnConvert.Click
 
        Dim attributes As String = "bius"
 
        Dim area As Point = Nothing, startindex As Integer
        Dim fs As FontStyle
 
        With rbo
            .Text = tbo.Text
 
            'Schleife über die unterstützten Attribute
            For i As Integer = 0 To attributes.Length - 1
                startindex = 0
                Do
                    'Suche nach nächstem Text-Bereich den das Attribut 
                    ' umschließt 
                    area = FindArea(.Text, startindex, attributes(i))
                    If Not area = Nothing Then
                        'BBCode aus dem RichText entfernen
                        .SelectionStart = area.X
                        .SelectionLength = 3
                        .SelectedText = ""
 
                        .SelectionStart = area.X + area.Y - 4
                        .SelectionLength = 4
                        .SelectedText = ""
 
                        'zeichenweise das FontStyle-Attribut einfügen
                        For k As Integer = area.X To area.X + area.Y - 5
                            .SelectionStart = k
                            .SelectionLength = 1
                            fs = .SelectionFont.Style
                            Select Case attributes(i)
                                Case Is = "b"c
                                    fs = fs Or FontStyle.Bold
                                Case Is = "i"c
                                    fs = fs Or FontStyle.Italic
                                Case Is = "u"c
                                    fs = fs Or FontStyle.Underline
                                Case Is = "s"c
                                    fs = fs Or FontStyle.Strikeout
                            End Select
                            .SelectionFont = New Font(.Font.Name, .Font.Size, _
                              fs)
                        Next k
                        startindex = area.X + area.Y
                    End If
                Loop While Not area = Nothing And startindex < .Text.Length
            Next i
        End With
 
    End Sub
 
 
 
    Private Function FindArea(ByVal text As String, _
                              ByVal startindex As Integer, _
                              ByVal Attribute As String) As Point
 
        Dim start, ende As Integer
        Try
            start = text.ToLower.IndexOf("[" & Attribute & "]", startindex)
            If start = -1 Then Return Nothing
            ende = text.ToLower.IndexOf("[/" & Attribute & "]", start + 2)
            If ende = -1 Then Return Nothing
            Return New Point(start, ende - start + 1)
        Catch
            Return Nothing
        End Try
    End Function
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Texteingaben in zweiter Textbox übernehmen (BBCode-Editor)1.451Scrypton08.04.14 22:57
Re: Texteingaben in zweiter Textbox übernehmen (BBCode-Edito...923Manfred X09.04.14 09:18
Re: Texteingaben in zweiter Textbox übernehmen (BBCode-Edito...885Scrypton09.04.14 13:55
Re: Texteingaben in zweiter Textbox übernehmen (BBCode-Edito...976Manfred X09.04.14 14:11
Re: Texteingaben in zweiter Textbox übernehmen (BBCode-Edito...883Scrypton09.04.14 15:18
Re: Texteingaben in zweiter Textbox übernehmen (BBCode-Edito...943Manfred X10.04.14 11:52
Re: Texteingaben in zweiter Textbox übernehmen (BBCode-Edito...869Manfred X10.04.14 12:54

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-2025 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