Aus einem Thread die ForeColor einer RitchBox ändern

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Aus einem Thread die ForeColor einer RitchBox ändern

    Ich schreibe aus einem Thread in eine RitchBox, das klappt. Nun möchte
    ich auch die ForeColor der Ritchbox ändern. Das bekomme ich nicht hin.

    DelegateSubDelegateWriteRTF(test AsString)

    ' ++++++++++++++++++ Schreibe mit Delegate in RitchBox
    Sub SchreibeInRitchBox(ProtokollString AsString)
    If TbAusgabe.InvokeRequired Then
    Dim WriteDelegate AsNewDelegateWriteRTF(AddressOf SchreibeInRitchBox)
    RbProtokoll.Invoke(WriteDelegate,ProtokollString)
    Else
    RbProtokoll.AppendText(ProtokollString)
    EndIf
    EndSub


    ' ++++++++++++++++++ Aufgerufen aus einem Thread
    Function ProtokollUndRitchBoxSchreiben(ByVal ZeitundStr AsString, ByVal Klartext AsString, ByVal SendeEmpfangStr AsString)
    SchreibeInRitchBox(ZeitundStr & Klartext & SendeEmpfangStr & vbCrLf)
    EndFunction

    ;) titus :?:
    Du brauchst die Delegate Subs nicht manuell zu machen in VS 2012.

    VB.NET-Quellcode

    1. Dim T As Thread = New Thread(sub()
    2. Me.invoke(sub()
    3. //Greife auf Control zu
    4. // z.b RichTextBox1.Forecolor = Color.Red
    5. End Sub)
    6. End Sub)
    7. T.Isbackground = true
    8. T.Start()
    Bau Dir eine Klasse um den Thread, die das erledigt.
    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!
    Das wird zu groß.


    Ich habe einen Thread der startet, wenn die Serielle Schnittstelle
    im Eingangsbuffer Daten hat.


    PrivateSub SerialPort5_DataReceived(ByVal sender AsObject, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles ComPort.DataReceived





    Diese Daten(Byte) werden verarbeitet und beantwortet.
    Zusätzlich schreibe ich, wie oben beschreiben, die Daten(String) in eine
    Ritchbox. Das geht alles. Das muss natürlich alles sehr schnell gehen damit
    alle Daten verarbeitet werden können. Nun wollte ich, damit es schöner aussieht,
    die Send und recive Daten in Unterschiedlichen Farben weg schreiben. Ich hoffe
    das reicht als Information um mein Problem zu lösen.
    ;) titus
    Ich würde einfach mal sagen: Da wo du deinen Thread startest instanziierst du ihn auch und dann darf dieser Fehler nicht kommen. Wenns nicht funktioniert poste bitte einfach ein Stück Code einschließlich der Codezeile, wo der Fehler auftritt. Dann können wir/ich dir besser helfen.
    Mfg
    Vincent

    titus55 schrieb:

    Ich habe einen Thread der startet, wenn die Serielle Schnittstelle im Eingangsbuffer Daten hat.
    Die serielle Schnittstelle arbeitet bereits in einem separaten Thread, da brauchst Du keinen neuen, denn Du musst die empfangenen Daten per Invoke anzeigen.
    Kannst Du mal weniger Schmus und mehr Information posten?
    Was macht Dein Programm, was soll es machen?
    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!
    Siehst Du iwo eine Straße?

    titus55 schrieb:

    beantwortet genau deine fragen.
    Eher nicht.
    Etwa so:
    Über eine serielle Schnittstelle empfange ich Daten der Art String, Zahlen, Bla.
    Diese sollen in einen String oder so konvertiert und an den bestehenden Text einer RTB angehängt werden.
    Bei der Formatierung soll String grün, Zahlen blau und bla rot dargestellt werden.
    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!