it-swarm.com.de

Console.WriteLine wird nicht im Ausgabefenster angezeigt

Ich habe einige Console.WriteLine-Aufrufe zum Testen eingegeben, aber sie erscheinen nicht im Ausgabefeld

public static ArrayList myDeliveries = new ArrayList();

public mainForm(){
    InitializeComponent();
}

private void mainForm_Load(object sender, EventArgs e){

    if (!File.Exists("../../MealDeliveries.txt")){
        MessageBox.Show("File not found!");
        return;
    }

    using (StreamReader sr = new StreamReader("../../MealDeliveries.txt")){
        //first line is delivery name 
        string strDeliveryName = sr.ReadLine();
        Console.WriteLine("Test content");

        while (strDeliveryName != null){

            //other lines 
            Delivery d = new Delivery(
                strDeliveryName, 
                sr.ReadLine(),
                sr.ReadLine(), 
                sr.ReadLine(),
                sr.ReadLine(), 
                sr.ReadLine(),
                sr.ReadLine()
            );

            mainForm.myDeliveries.Add(d);

            //check for further values
            strDeliveryName = sr.ReadLine();
        }
    }

    displayDeliveries();


}


private void displayDeliveries(){

    lstDeliveryDetails.Items.Clear();
    Console.WriteLine("Test content");
    Console.WriteLine(mainForm.myDeliveries.Count);
    foreach (Delivery d in mainForm.myDeliveries){
        lstDeliveryDetails.Items.Add(d.DeliveryName);

    }
}

Kann jemand helfen??

64
sark9012

Wenn Sie diese Ausgabe in der Produktion verwenden möchten, verwenden Sie die Klassenmitglieder Trace . Dadurch wird der Code portierbar. Sie können verschiedene Arten von Listenern anschließen und an das Konsolenfenster, das Debug-Fenster, die Protokolldatei oder was auch immer Sie möchten, ausgeben.

Wenn es sich nur um einen temporären Debugging-Code handelt, den Sie verwenden, um zu überprüfen, ob bestimmter Code ausgeführt wird oder über die richtigen Werte verfügt, verwenden Sie die Klasse Debug als Zach .

Wenn Sie die Konsole unbedingt verwenden müssen, können Sie eine Konsole anschließen in der Main-Methode des Programms verwenden.

40
Aaronaught

Console gibt das Konsolenfenster aus und Winforms-Anwendungen zeigen das Konsolenfenster nicht an. Sie sollten System.Diagnostics.Debug.WriteLine verwenden können, um die Ausgabe an das Ausgabefenster in Ihrer IDE zu senden.

Edit: Haben Sie in Bezug auf das Problem überprüft, dass Ihr mainForm_Load tatsächlich aufgerufen wird? Sie könnten einen Haltepunkt am Anfang von mainForm_Load platzieren, um zu sehen. Wenn es nicht aufgerufen wird, vermute ich, dass mainForm_Load nicht an das Load-Ereignis angeschlossen ist. 

Außerdem ist es effizienter und im Allgemeinen besser, On{EventName} zu überschreiben, anstatt {EventName} innerhalb abgeleiteter Klassen zu abonnieren (in Ihrem Fall überschreiben Sie OnLoad anstelle von Load).

86
Zach Johnson

Wenn Console.WriteLine("example text") output im Fenster Debug Output angezeigt werden soll, ändern Sie vorübergehend den Ausgabetyp Ihrer Anwendung von der Konsolenanwendung in die Windows-Anwendung. 

Wählen Sie in den Menüs "Projekt" + "Eigenschaften" und navigieren Sie zu "Ausgabetyp": Dropdown-Menü, wechseln Sie zu "Windows-Anwendung" und führen Sie Ihre Anwendung aus

Natürlich sollten Sie es für die Erstellung einer Konsolenanwendung, die außerhalb der IDE ausgeführt werden soll, zurücksetzen.

(Getestet mit Visual Studio 2008 und 2010, sollte es auch in letzteren Versionen funktionieren)

10
davervw

Wenn Sie eine Befehlszeilenanwendung entwickeln, können Sie auch Console.ReadLine() am Ende Ihres Codes verwenden, um auf die Eingabetaste zu warten, bevor Sie das Konsolenfenster schließen, um Ihre Ausgabe zu lesen. Sowohl die Trace- als auch die Debug-Antworten oben sind jedoch bessere Optionen. 

1
paul jerman

Alter Thread, aber in VS 2015 Console.WriteLine schreibt nicht in das Ausgabefenster, wenn "Aktivieren des Visual Studio-Hosting-Prozesses" nicht aktiviert ist oder in der Registerkarte "Projekteigenschaften"> "Debuggen" deaktiviert ist

0
Blak RUSH

Wenn ein Problem auf Mac VS 2017 (dem ich begegnet bin) passiert.

  1. Gehen Sie zu den Projektoptionen >> "Ihr Projektname". 
  2. Ein Optionsfenster wird geöffnet
  3. Gehen Sie zur Menüoption RUN >> Default 
  4. Kreuzen Sie die Option "Auf externer Konsole ausführen" an und sagen Sie "OK"

Führen Sie jetzt Ihren Anwendungscode aus. 

0

Versuchen Sie, das Kontrollkästchen "Verwalteten Kompatibilitätsmodus verwenden" in zu deaktivieren

Extras => Optionen => Debuggen => Allgemein

Es hat bei mir funktioniert.

0

Mit Console.WriteLine( "Test" ); können Protokollnachrichten für ein Windows Forms/WPF-Projekt in Visual Studio in das Ausgabefenster (Menü Ansicht -> Ausgabe) geschrieben werden.

Ich bin jedoch auf einen Fall gestoßen, in dem es nicht funktionierte und nur System.Diagnostics.Debug.WriteLine( "Test" ); funktionierte. Ich habe Visual Studio neu gestartet und Console.WriteLine() begann wieder zu arbeiten. Scheint ein Visual Studio-Fehler zu sein. 

0
Dhiren Sarup