richTextBox: Text mit verschiedenen Schriftgrößen markiert

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von FBB_Swift_Shadow.

    richTextBox: Text mit verschiedenen Schriftgrößen markiert

    Hallo ^^ ,

    ich habe eine richTextBox, bei der ich, über Checkboxen bzw. Comboboxen, markierten Text bearbeiten kann (Fett, kursiv, Schriftfarben, Schriftgrößen usw. ). Wenn der markierte Text verschiedene Schriftgrößen beinhaltet ( z.B. ein Wort in Schriftgröße 12 und das Andere in Schriftgröße 16) und diesen dann z.B. Fett machen möchte wird dieser nicht nur Fett sondern verändert auch die Schriftgröße auf 13.

    Beim Debuggen habe ich dann gemerkt, dass markierte Stellen mit verschiedenen Größen immer die Größe 13 haben (richTextBox.selectionFont.size = 13).

    Hier meine Sub für die Checkboxen:

    VB.NET-Quellcode

    1. Public Sub formatAendern()
    2. Dim fsSelectedFontstyle As FontStyle = FontStyle.Regular
    3. If chkFett.Checked Then fsSelectedFontstyle = fsSelectedFontstyle Or FontStyle.Bold
    4. If chkKursiv.Checked Then fsSelectedFontstyle = fsSelectedFontstyle Or FontStyle.Italic
    5. If chkUnterstrichen.Checked Then fsSelectedFontstyle = fsSelectedFontstyle Or FontStyle.Underline
    6. If chkDurchgestrichen.Checked Then fsSelectedFontstyle = fsSelectedFontstyle Or FontStyle.Strikeout
    7. Dim fontTest As Font = rtfBeschreibung.SelectionFont
    8. rtfBeschreibung.SelectionFont = New Font(fontTest.FontFamily, fontTest.Size, fsSelectedFontstyle)
    9. End Sub


    Jemand eine gute Idee wie ich verhindern kann, dass immer auf Schriftgröße 13 umgestellt wird?
    @FBB_Swift_Shadow Das ist etwas stressig.
    Du musst die Zeichengruppen innerhalb der Selection, die verschieden formatiert sind, einzeln behandeln.
    Vergrößere den selektierten Bereich um eins und rufe den .SelectedFont ab. Der wird wohl Nothing, wenn ein neuer Bereich anfängt.
    Dann also eins zurück, den vorhandenen Font manipulieren und SelectionStart auf das nächste Zeichen setzen usw.
    Feddich.
    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!
    so in die Richtung hab ich auch schon gedacht. selectedFont wird aber nicht Nothing. Sondern die richTextBox.selectionFont.size wird einfach 13 und wenn ich über die Schriftgröße prüfe kann ja 13 nicht mehr als Schriftgröße angegeben werden...