Zusammenführen mehrer RichTexte und Drucken von RichText mit Formatierung

    • VB.NET

      Zusammenführen mehrer RichTexte und Drucken von RichText mit Formatierung

      Das sind zwei Teilprobleme, auf die ich durch diesen Thread von @vbPotato aufmerksam gemacht wurde.
      Für das Drucken von formatiertem RichText habe ich zwei Quellen:
      Microsoft mit angehängten Quellen in VB.NET und C#
      1. Teilproblem Drucken von formatiertem RichText:
        In meinem Beispiel hier habe ich die VB-Quellen von Microsoft genutzt und geringfügig modifiziert:
        Die Public Sub Print() wurde ersatzlos gestrichen,
        die Prozeduren printDoc_BeginPrint, printDoc_PrintPage, printDoc_EndPrint wurden von Private auf Public geändert.
        So ist es möglich, den RichText in einer RichTextBoxPrint zu modifizieren und den Aufruf dieser Prozeduren einfach durchzureichen, wobei das Druckhandling über den üblichen Druckdialog funktioniert.
      2. Teilproblem Zusammenführen mehrerer RichTexte:
        Microsoft ist irgendwie geizig beim Zugriff auf den RichText einer RichTextBox, aber die Properties Rtf und SelectedRtf reichen völlig aus.
        Wir generieren eine RichTextBoxPrint-Instanz ohne Designer und transferieren die SelectedRtf-Inhalte von den RichTextBox-Instanzen in die RichTextBoxPrint-Instanz.
        Dabei muss aufgepasst werden, dass die die Target-Texte vollständig selektiert sind und dass der Beginn der Selektierung in der Ziel-Instanz am Ende des Textes steht:
        Zusammenführen von formatiertem RichText

        VB.NET-Quellcode

        1. PrintRtb.Clear()
        2. PrintRtb.SelectionStart = PrintRtb.TextLength
        3. PrintRtb.SelectedRtf = RichTextBox1.Rtf
        4. PrintRtb.SelectionStart = PrintRtb.TextLength
        5. PrintRtb.SelectedRtf = RichTextBox2.Rtf
        6. PrintRtb.SelectionStart = PrintRtb.TextLength
        7. PrintRtb.SelectedRtf = RichTextBox3.Rtf

      Im Beispielprogramm sind 3 RichTextBoxen mit unterschiedlichen und unterschiedlich gefärbten Texten:


      Im PrintPreviewDialog wird dann der zusammengeführte Text angezeigt:


      Das ganze ist einfach nachvollziehbar, ich hoffe, dass nur wenig Fragen offen geblieben sind.
      Ich möchte in diesem Thread nicht das Formatieren von Text in einer RichTextBox behandeln, das wird hier getan: vb-archiv mit Quellen in VB.NET aus diesem Thread.
      Dateien
      • MultiRtbPrint.zip

        (19,32 kB, 89 mal heruntergeladen, zuletzt: )
      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).
      VB-Fragen über PN / Konversation werden ignoriert!

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „RodFromGermany“ ()