vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Mehrere RTF Texte in einer RichTextBox zusammenfassen 
Autor: Jenpet
Datum: 24.07.15 09:34

Hallo,
ich habe ein Problem mit mehreren RTF Texten, die zu einem großen RTF Text in einer RichTextBox zusammengefasst werden sollen.

Eigentlich wollte ich in eine fertige Anwendung nur eine Funktion erstellen, die RTF Texte zusammenfasst, damit diese nicht einzeln ausgegeben werden müssen.

Ich habe im Internet zwar eine Lösung gefunden, die auch in meiner Testanwendung wunderbar funktioniert hat, aber in der richtigen Anwendung wirft die Funktion die Fehlermeldung aus:

{System.Threading.ThreadStateException: Für den aktuellen Thread muss der STA-Modus (Single Thread Apartment) festgelegt werden, bevor OLE-Aufrufe ausgeführt werden können.

Hier ist der Abschnitt aus meinem Code:

Dim rtbTmp As New RichTextBox ' Temporary Rich Text Box
            Dim datobj As New System.Windows.Forms.DataObject
            Dim counter = 0
 
            For Each element As String In array                                
                If Not String.IsNullOrEmpty(element) Then
                    'txtContrl.Append(element, StringStreamType.RichTextFormat, 
                    ' AppendSettings.StartWithNewParagraph)
                    If counter = 0 Then
                        rtbTmp.Rtf = caption ' Copy RichTextBox1 into rtbTmp
                        rtbTmp.AppendText(vbCrLf) ' Leerzeile nach Überschrift
                        datobj.SetData(DataFormats.Rtf, element) ' Copy 
                        ' RichTextBox2 to the Clipboard
                        Clipboard.SetDataObject(datobj)
                        rtbTmp.SelectionStart = rtbTmp.TextLength
                        rtbTmp.Paste()
 
                        counter = counter + 1
                    Else
                        ' Paste RichTextBox2's copied text to the end of _
                          Temporary Rich Text Box
                        datobj.SetData(DataFormats.Rtf, element)
                        Clipboard.SetDataObject(datobj)
                        rtbTmp.SelectionStart = rtbTmp.TextLength
                        rtbTmp.Paste()
                        ' Copy combined contents of Temporary Rich Text Box to 
                        ' the clipboard
                    End If
 
                End If
            Next
Das hat in meiner Test-Konsolenanwendung wunderbar funktioniert.
Das Problem ist, ich kann die fertige Anwendung nicht auf Single Thread stellen.

Ich habe versucht nur mit den RichTextBox befehlen copy und paste zu arbeiten, aber entweder mache ich da etwas falsch, oder die sind ohne das Clipboard und den Dataset nicht alleine für das Zusammenfassen von Texten zu gebrauchen.

Jetzt wollte ich fragen, ob es eine andere (bessere) Lösung gibt, wie ich RTF Texte so einfach zusammenfassen kann, ohne dass ich das Clipboard verwende und ohne, dass ich die Anwendung auf Single Thread stelle.

Danke im Voraus für die Antwort!

Beitrag wurde zuletzt am 24.07.15 um 09:41:43 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Mehrere RTF Texte in einer RichTextBox zusammenfassen2.325Jenpet24.07.15 09:34
Re: Mehrere RTF Texte in einer RichTextBox zusammenfassen1.124Jenpet24.07.15 12:08
Re: Mehrere RTF Texte in einer RichTextBox zusammenfassen1.143effeff24.07.15 22:39
Re: Mehrere RTF Texte in einer RichTextBox zusammenfassen1.038Jenpet27.07.15 10:33

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel