windows form .. console.writeline() where is console?

末鹿安然 提交于 2019-11-28 18:34:32

In project settings set application type as Console. Then you will get console window and Windows form.

You should also consider using Debug.WriteLine, that's probably what you're looking for. These statements are written out the trace listeners for your application, and can be viewed in the Output Window of Visual Studio.

Debug.WriteLine("constructor fired");

If you run your application in Visual Studio you can see the console output in the output window.

Debug -> Windows -> Output

Note that the preferable way to output diagnostics data from a WinForms application is to use System.Diagnostics.Debug.WriteLine or System.Diagnostics.Trace.WriteLine as they are more configurable how and where you want the output.

noelicus

As other answers have stated System.Diagnostics.Debug.WriteLine is the right call for debugging messages. But to answer your question:

From a Winforms application you can invoke a console window for interaction like this:

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

I sometimes use this to raise a command prompt instead of application windows when given certain switches on opening.

There's some more ideas in this similar question if anyone needs it:
What is the Purpose of Console.WriteLine() in Winforms

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!