wake-up-neo.com

Windows Form .. console.writeline () Wo ist die Konsole?

Ich habe eine Windows Form-Lösung erstellt und im Konstruktor einer Klasse, die ich aufgerufen habe

Console.WriteLine("constructer called")

Aber ich habe nur das Formular und nicht die Konsole. Wo ist also die Ausgabe?

41
SmartestVEGA

Legen Sie in den Projekteinstellungen den Anwendungstyp als Konsole fest. Dann erhalten Sie Konsolenfenster und Windows-Formular.

57
Tomas Voracek

Sie sollten auch in Betracht ziehen, Debug.WriteLine zu verwenden, das ist wahrscheinlich das, wonach Sie suchen. Diese Anweisungen sind für die Ablaufverfolgungslistener Ihrer Anwendung geschrieben und können im Ausgabefenster von Visual Studio angezeigt werden.

Debug.WriteLine("constructor fired");
46
BrandonZeider

Wenn Sie Ihre Anwendung in Visual Studio ausführen, wird die Konsolenausgabe im Ausgabefenster angezeigt.

Debug -> Windows -> Ausgabe

Beachten Sie, dass die bevorzugte Methode zum Ausgeben von Diagnosedaten aus einer WinForms-Anwendung die Verwendung von System.Diagnostics.Debug.WriteLine oder System.Diagnostics.Trace.WriteLine da sie mehr konfigurierbar sind wie und wo du die ausgabe willst.

15
Albin Sunnanbo

Wie andere Antworten angegeben haben System.Diagnostics.Debug.WriteLine ist der richtige Aufruf zum Debuggen von Nachrichten. Aber um deine Frage zu beantworten:

In einer Winforms-Anwendung können Sie ein Konsolenfenster für die Interaktion wie folgt aufrufen:

using System.Runtime.InteropServices;

...

void MyConsoleHandler()
{
    if (AllocConsole())
    {
        Console.Out.WriteLine("Input some text here: ");
        string UserInput = Console.In.ReadLine();

        FreeConsole();
    }
}


[DllImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool AllocConsole();

[DllImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool FreeConsole();

Ich verwende dies manchmal, um eine Eingabeaufforderung anstelle von Anwendungsfenstern auszulösen, wenn bestimmte Schalter beim Öffnen aktiviert werden.

Diese ähnliche Frage enthält weitere Ideen, falls jemand sie benötigt:
Wozu dient Console.WriteLine () in Winforms

3
noelicus