Laden...

Eigenen Console Output in TextBox in eigener Form umleiten

Erstellt von christof.k vor 15 Jahren Letzter Beitrag vor 15 Jahren 5.780 Views
C
christof.k Themenstarter:in
159 Beiträge seit 2005
vor 15 Jahren
Eigenen Console Output in TextBox in eigener Form umleiten

Hallo,

in meinem WinForm Programm nutze ich sehr oft Console.Write / Writeline.

Nun würde ich gerne all diese Ausgaben in ein RTF-Control umleiten.

Ich habe nun schon einige Stunden mit Google verbracht, habe aber meistens nur links zu Dateiausgaben gefunden.

Ich denke ich muss einen eigenen TraceListener erstellen, Write/Writeline überscheiben und gut ist. Aber ich weiß dann nicht, wie ich den mit meinem RTF-Control verknüpfe.

Bin für jeden Tip dankbar
Christof

1.200 Beiträge seit 2007
vor 15 Jahren

Finde den Process der Konsolen Anwendung (in dem Fall müsste es dein eigener sein) und lese dann von dessen StandardOutput Property. Es ist gut möglich, dass in einer WinForms Anwendung die Ausgabe einfach unterdrückt wird.

edit: Process Class

Shift to the left, shift to the right!
Pop up, push down, byte, byte, byte!

YARRRRRR!

Gelöschter Account
vor 15 Jahren

häng dich doch an das event:

System.Diagnostics.Process.GetCurrentProcess().OutputDataReceived

(ungetestet)

C
christof.k Themenstarter:in
159 Beiträge seit 2005
vor 15 Jahren

Hallo,

hier Umleitung des Consolen outputs
habe ich einen Tip gelesen, der sagt:

Console .SetOut(TEXTWRITER_OBJEKT) 

"Dazu muss man im Textwriter nur den Text an die Textbox anhängen!"

Nun frage ich mich, wie kann ich einen Textwriter schreiben, der in eine Textbox schriebt??

In der zwischenzeit schaue ich mir schonmal Eure Ideen an.

Christof

5.299 Beiträge seit 2008
vor 15 Jahren

Ma probieren:

System.IO.TextWriter beerben, und

Public Overridable Sub Write(ByVal value As String)
     Member of System.IO.TextWriter
Summary:
Writes a string to the text stream.

Parameters:
value: The string to write.

Exceptions:
System.ObjectDisposedException: The System.IO.TextWriter is closed.
System.IO.IOException: An I/O error occurs.


derart überschreiben, dasser in die Richtextbox schreibt (Rtb.AppendText()).
WriteLine auch überschreiben.

Der frühe Apfel fängt den Wurm.

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo christof.k,

Ich denke ich muss einen eigenen TraceListener erstellen, Write/Writeline überscheiben und gut ist. Aber ich weiß dann nicht, wie ich den mit meinem RTF-Control verknüpfe.

ja, TraceListener wäre hier das sinnvollste. Write/Writeline musst du nicht überscheiben, sondern nur das aus der Debug-Klasse verwenden. Wie man einen TraceListener erstellt, steht in der :rtfm: Doku. Das RTF-Control kannst du dem Konstruktor übergeben.

herbivore