C# Während einer Windows-Forms-Anwendung Konsolenausgaben machen

Registriert
Dez. 2009
Beiträge
213
So starte ich meine Applikation:

using System;
using System.Windows;
using System.Windows.Forms;

class Program
{
static int Main(string[] Parameter)
{
Form Form1 = new Form1();
Application.Run(Form1);
return 0;
}
}

Jetzt will ich, wenn man auf dem Form zB. auf einen Button klickt, wieder was in der Konsole ausgeben. Die Konsole habe ich ja noch nicht verschwinden lassen. Doch Console.WriteLine("text"); führt immer zu Fehlern. Ich kann einfach nicht zwischen zwei User-Interfaces (grafisch und nicht grafisch) wechseln. Wie geht das? Mehr noch: Wie kann ich mehrere Konsolen verwenden, ohne auf verschiedene Anwendungen das zu verteilen? Danke im Vorraus für Antworten!
 
Ich kenne mich mit C# bzw. VC# nicht aus. Aber wie sieht es aus, wenn du einen extra output-stream machst, der dann in die Standardausgabe (also Konsole) schreibt? Ich weiß allerdings nicht, ob hier sowas geht.

Gruß,

badday
 
Von einem output-stream habe ich in c# noch nie etwas gehört.
 
Wie gesagt, ich kenne die Sprache nicht.
Hast du schonmal
Console.Error.WriteLine(" ... ");
versucht?

Gruß,

badday
 
Ne, das wäre ja jetzt echt Zufall, dass du die Sprache nicht kennst und mir einen Befehl nennst, den es dann auch tatsächlich gibt!! Halte du dich da lieber raus, wenn du von c#.NET keine Ahnung hast. Es sei denn du kannst VB.NET, dann kannst du mir helfen, weil das auch auf .NET basiert und die gleichen Klassen verwendet.
 
OK, den Link hättest du ja früher bringen können.
Den Standart-Output habe ich ja gemacht, mit Console.WriteLine();
 
Mehr noch: Wie kann ich mehrere Konsolen verwenden, ohne auf verschiedene Anwendungen das zu verteilen? Danke im Vorraus für Antworten!
Ein Prozess kann nur eine Konsole haben -> du brauchst mehrere Prozesse.
 
@Grantig: Das von Grantig ist echt genial! Vielen Dank für die Links.
@Woey: Wenn es Windows so vorschreibt, werde ich mich wohl daran halten müssen, vielen Dank für den Hinweis!
 
@problemlöser64: Die Frage ist doch, was möchtest du erreichen? Eventuell gibt es andere elegantere Wege. Vielleicht kannst du uns ja den Sachverhalt schildern wenns möglich ist und wir können mit möglichen, besseren, anderen, usw, Lösungen helfen.
 
es muss nicht einen andere Anwendung sein wo du deinen Daten ausgibst... aber wenn du sowas tust, naja... da hat man einfach sicherheitsbedenken.

Musst du unbedingt in echtzeit sehen können was passiert? wenn ja, hast du 2 Probleme. Das Erst, du musst dein Form erweitern. Zu den Standart OnClick muss du noch eine zusätzliche implementierung hinzufügen dass alles in der Console ausgibt. wenn du das nicht so machen willst kannst du zur jede Methode einen Paralellen code schreiben (Hier muss kein Prozess sein, man kann auch glaube ich als Thread eine Console starten.), der dann in der Console die sachen ausgibt. Multithreading wirds schwierig da der Compiler dir jeden kleinen Fehler sofort ausgibt falls dein Programm nicht Threadsafe ist.

ähm ja das 2 Problem ist mit Multithreading oder Zwischen 2 Prozessen Kommunikation. MT kann ich nur empfehlen wenn du schon einigermaßen dich in C# auskennst. Anfänger würden damit vollkommen überfordert werden.

Am einfachsten wäre es in eine Datei die Klicks reinzuschreiben.
 
Zurück
Oben