Frage zum RTF

heikoarndt

Mitglied
Hallo habe folgende Sache...
Ich habe eine RichTextBox und möchte dort fertigen Text editieren, d.h. z.B. möchte ich einen Bereich selektieren, und wenn ich dann auf einen Button "bold" drücke, soll sich der Text der Eigenschaft "bold" anpassen.
Problem ist, dass ich jedes Zeichen einzeln durchgehen muss, um die bereiets vorhandenen Einstellungen beizubehalten (Größe, Schriftart, etc.) und dies dauert zu lange. Hat Jemand da eine bessere Lösung, oder ein Beispiel?
Danke
 
Beispiel RTF

Hallo,

ich habe ein Beispiel von einem RTF-Texteditor gefunden der genau das macht was du suchst.

Ich hoffe du kannst was damit anfangen.

lg
Thorsten
 

Anhänge

  • richtextboxpad.zip
    28,4 KB · Aufrufe: 21
Genau so etwas hatte ich gesucht, danke schon mal. Nur ist hier auch ein Fall leider nicht umgesetzt, der für mich sehr wichtig ist.
Bsp.
Ich habe in einer Zeile einige Wörter kursiv, und meinetewegen ein Wort noch in einer anderen Schriftart. Wenn ich nun die komplette Zeile selektiere und alles "fett" haben will, merkt er sich leider nicht, dass einige Wörter kursiv waren, und ein Wort in einer anderen Schriftart war, sondern setzt alles einheitlich auf "fett". NIchts mehr ist kursiv usw.
Das ist das große Problem. Und wenn ich jedes einzelne Zeichen durchlaufe, und mir die Eigenschaften merken würde, dauert es einfach zu lange.
Für dieses Problem bräuchte ich eine Lösung
 
2. Versuch

Ich habe noch etwas gefunden - aber selbst nicht ausprobiert.
Es dürfte aber das Problem lösen. Es sichert die Font-Einstellungen und ändert nur einen Wert und weist das ganze wieder den Text zu.

Code:
private void ToggleBold()
{
   if (richTextBox1.SelectionFont != null)
   {
      System.Drawing.Font currentFont = richTextBox1.SelectionFont;
      System.Drawing.FontStyle newFontStyle;

      if (richTextBox1.SelectionFont.Bold == true)
      {
         newFontStyle = FontStyle.Regular;
      }
      else
      {
         newFontStyle = FontStyle.Bold;
      }

      richTextBox1.SelectionFont = new Font(
         currentFont.FontFamily, 
         currentFont.Size, 
         newFontStyle
      );
   }
}

Ich hoffe Du kommst damit weiter!

LG
Thorsten
 
Zurück