Text formatiert in die Zwischenablage kopieren

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Goof.

    Text formatiert in die Zwischenablage kopieren

    Hallo zusammen,

    wie kann ich einen Text erzeugen, der z.B. Fett oder unterstrichen und in einer bestimmten Schrift ist? Aus einer Richtextbox lässt sich der Text formatiert kopieren.

    Dim strText as String = "Test"
    My.Computer.Clipboard.SetText(strText)

    Ergebnis sollte so nach dem einfügen aussehen:

    Test

    Vielen Dank Goof
    schau dir mal das RichText-Format an.
    Das ist recht bekannt durch die RichtTextBox (welch Wunder ^^) und deren Einsatzmöglichkeiten.

    Da würde das ungefähr so aussehen.

    Woher kommt der strText den du einließt? Er müsste ja die zusätzlichen tags für Fett/Kursiv/etc. haben.
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    @Goof Wenn Du den Text in einer RichTextBox markiert hast, kannst Du ihn so in die Zwischenablage befördern:

    VB.NET-Quellcode

    1. ClipBoard.SetText(RichTextBox1.SelectedRtf, TextDataFormat.Rtf)

    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!

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

    Hi,

    dann müsstest du den im RTF-Format auch der Variable zuweisen: support.microsoft.com/en-us/he…h-visual-basic-automation
    Check auch den Post: RTF erstellen ?! da hatte jemand die gleiche Frage schonmal.
    Wie du das dann formatiert in die Zwischenablage bekommst, wurde ja bereits beantwortet.

    Link :thumbup:
    Hello World
    Such im Internet nach "rtf specification", dann findest du Dokumente, die erläutern, wie die Formatierungen in deinem Text vorgenommen werden müssen, damit sie von anderen Programmen im RTF-Format aus der Zwischenablage geholt (und eingefügt) werden können.

    Beispiel aus der Wikipedia:

    Quellcode

    1. {\rtf1
    2. Guten Tag!
    3. \line
    4. {\i Dies} ist \b{\i ein
    5. \i0 formatierter \b0Text}.
    6. \par
    7. \i0 Das \b0Ende.
    8. }
    Weltherrschaft erlangen: 1%
    Ist dein Problem erledigt? -> Dann markiere das Thema bitte entsprechend.
    Waren Beiträge dieser Diskussion dabei hilfreich? -> Dann klick dort jeweils auf den Hilfreich-Button.
    Danke.
    auch sehr hilfreich:
    Wenn man sich mit der RTF-Schreibweise schwer tut, schreibe es in HTML und verwende einen HTML to RTF Converter.
    Findest du auch im Netz als Funktion die du in dein Projekt einsetzen kannst.

    LG Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:

    Goof schrieb:

    Ich habe leider keine Richtextbox.
    Klar hast Du eine.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. CopyToClipboard("bla bla bla")
    3. End Sub
    4. Private Sub CopyToClipboard(text As String)
    5. Using rtb As New RichTextBox
    6. rtb.Text = text
    7. rtb.SelectAll()
    8. rtb.SelectionFont = New Font("Arial", 20, FontStyle.Bold Or FontStyle.Italic Or FontStyle.Underline)
    9. rtb.SelectAll()
    10. Clipboard.SetText(rtb.SelectedRtf, TextDataFormat.Rtf) ' Hier war noch ein Fehler
    11. End Using
    12. End Sub

    ======================
    Wenn Du möchtest, dass der formatierte Text in Word AndAlso der unformatierte Text im Notepad eingefügt werden kann, musst Du über ein DataObject gehen:

    VB.NET-Quellcode

    1. Dim data = New DataObject()
    2. data.SetText(rtb.SelectedRtf, TextDataFormat.Rtf)
    3. data.SetText(rtb.SelectedText, TextDataFormat.Text)
    4. Clipboard.SetDataObject(data, True)
    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!

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