57 votes

Formulaire Windows console.writeline() où est la console ?

J'ai créé une solution de formulaire Windows et dans le constructeur d'une classe j'ai appelé

Console.WriteLine("constructer called")

Mais je n'ai obtenu que le formulaire et pas la console alors où est la sortie ?

68voto

BrandonZeider Points 4692

Vous devriez également envisager d'utiliser Debug.WriteLine c'est probablement ce que vous recherchez. Ces déclarations sont écrites dans les écouteurs de trace de votre application, et peuvent être visualisées dans la section Fenêtre de sortie de Visual Studio .

Debug.WriteLine("constructor fired");

66voto

Tomas Voracek Points 4300

Dans les paramètres du projet, définissez le type d'application comme Console. Vous obtiendrez alors une fenêtre de console et un formulaire Windows.

17voto

Albin Sunnanbo Points 30722

Si vous exécutez votre application dans Visual Studio, vous pouvez voir la sortie de la console dans la fenêtre de sortie.

Debug -> Windows -> Sortie

Notez que la meilleure façon de produire des données de diagnostic à partir d'une application WinForms est d'utiliser la fonction System.Diagnostics.Debug.WriteLine o System.Diagnostics.Trace.WriteLine car ils permettent de configurer plus facilement comment et où vous voulez la sortie.

9voto

noelicus Points 3788

Comme d'autres réponses l'ont indiqué System.Diagnostics.Debug.WriteLine est le bon appel pour les messages de débogage. Mais pour répondre à votre question :

À partir d'une application Winforms, vous pouvez invoquer une fenêtre de console pour interagir comme ceci :

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();

Je l'utilise parfois pour faire apparaître une invite de commande au lieu de l'application Windows lorsqu'on me donne certains boutons à l'ouverture.

Il y a d'autres idées dans cette question similaire si quelqu'un en a besoin :
Quel est l'objectif de Console.WriteLine() dans Winforms ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X