2011-04-18 16 views
29

he creado una solución de forma ventanas y en el constructor de una clase que se llamawindows form .. console.writeline() ¿dónde está la consola?

Console.WriteLine("constructer called")

Pero sólo tiene la forma y no la consola .. ¿Dónde está la salida?

+3

o si se inicia el exe de la consola y no quiere cambiar su aplicación manifiesta ser una aplicación de consola, aquí es el verdadero solución: http://www.nerdyhearn.com/blog/157/ –

Respuesta

43

En la configuración del proyecto, configure el tipo de aplicación como Consola. Entonces obtendrás consola y forma.

11

Si ejecuta su aplicación en Visual Studio, puede ver la salida de la consola en la ventana de resultados.

Depuración -> Windows -> Salida

Tenga en cuenta que la forma preferible de datos de diagnóstico de salida de una aplicación de Windows Forms es utilizar System.Diagnostics.Debug.WriteLine o System.Diagnostics.Trace.WriteLine ya que son más configurable cómo y dónde desea que la salida .

+0

¿Cómo se configura cómo y dónde desea la salida? He ido a la ventana de opciones de depuración, y en Depuración> Ventana de salida> Configuración de salida general, "Todos los resultados de depuración" está configurado en "Activado", y todavía no puedo obtener nada para mostrar en la ventana de salida utilizando esos métodos. –

36

También debería considerar el uso de Debug.WriteLine, eso es probablemente lo que está buscando. Estas declaraciones están escritas por los oyentes de rastreo para su aplicación, y se pueden ver en el Output Window of Visual Studio.

Debug.WriteLine("constructor fired"); 
+1

Sigo intentando esto, pero nunca aparece nada en la ventana de salida excepto en la compilación habitual que comenzó con la creación correcta. –

1

Como otras respuestas han declarado System.Diagnostics.Debug.WriteLine es la decisión correcta para los mensajes de depuración. Pero para responder a su pregunta:

desde una aplicación de Windows Forms puede invocar una ventana de consola para la interacción de esta manera:

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

veces Lo utilizo para criar a un símbolo del sistema en lugar de las ventanas de aplicación cuando se les da ciertos interruptores apertura.

Hay algunas ideas más en esta cuestión similar si alguien lo necesita:
What is the Purpose of Console.WriteLine() in Winforms

Cuestiones relacionadas