Prüfen, ob bestimmte Strings in einer RichTextbox fett sind

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Prüfen, ob bestimmte Strings in einer RichTextbox fett sind

    Hallo,

    ich habe folgendes Programm vor mir: Ein Nutzer kann einen Text eingeben, diesen anschließend markieren, über einen Button "F" fett formatieren und als html-dokument abspeichern. Dabei sollte für ihn aber nach der Formatierung auf der Oberfläche kein "<b> Text </b>" zu sehen sein , sondern nur sein fettgedruckter Text, in dem Fall also "Text". Deshalb arbeite ich mit einem String, in den ich bei Text_Changed der Richtextbox parallel schreibe. Sobald der User etwas markiert und "F" drückt, erscheint er auf der Oberfläche fett und im String lösche ich den Markierten Teil und ersetze diesen durch "<b> & Richtextbox.SelectedText & "</b>. Aber sobald der user weiterschreibt oder ein weiteres Wort markiert, hat der String logischerweise wieder den Teil ohne die <b>´s, so wie es eben in der Richbox steht.

    Am liebsten würde ich, nachdem der komplette Text eingegeben und in den String geschrieben wurde, überprüfen, welche Teile des Strings fett gedruckt sind und diese dann durch <b> & SichSelbst & </b> ersetzen.

    Z.B. mit:
    For Each ... Item in dem String
    If Item is Bold Then
    String.remove(...)
    String.insert(...)
    Next

    Aber hab bis jetzt noch nichts gefunden, hoffe jemand kann mir hier helfen?

    Schonmal vielen Dank für eure Bemühungen!!
    Willkommen im Forum. :thumbup:
    Sieh Dir mal dies an:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. RichTextBox1.Text = "lkj sd lksdgölkjsgt ölkjt öliwejtg ölwketjg ölkgjb ösldkgj"
    3. RichTextBox1.SelectionStart = 10
    4. RichTextBox1.SelectionLength = 20
    5. RichTextBox1.SelectionFont = New Font("Arial", 12, FontStyle.Bold)
    6. End Sub
    7. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    8. RichTextBox1.SelectionStart = 12
    9. RichTextBox1.SelectionLength = 10
    10. Dim ft As Font = RichTextBox1.SelectionFont '= New Font("Arial", 12, FontStyle.Bold)
    11. If ft.Bold Then
    12. MessageBox.Show("Bold")
    13. Else
    14. MessageBox.Show("nicht Bold")
    15. End If
    16. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!