Windows 窗体应用程序中的控制台输出

Console output in WindowsForms application

我正在尝试开发一个 windows 应用程序来显示控制台 window 作为输出。

如果我将属性中的输出类型更改为 "console Application" 控制台 window 和表单显示。但我只需要先显示表单 window,当我单击一个按钮时,只有控制台 window 需要显示输出值。

请指导我...

提前致谢。

使用 NativeMethods.AllocConsole(); 分配控制台并 I/O 使用它。

使用 NativeMethods.FreeConsole(); 关闭并释放此控制台。

每个进程最多只能关联一个控制台。您可以采取多种方式:要么在启动时立即隐藏控制台 window 并稍后显示(通过 ShowWindow), or you leave the project as a window application, and create the console manually using AllocConsole 稍后显示。

如果您想要多个控制台,例如,您可以使用 AttachConsole 创建一个虚拟进程 (cmd) 并将您的进程附加到它的控制台。托管方式是使用远程处理或其他技术与虚拟进程通信(使用您自己的实现),并通过它打印文本。

您想在表单中输出 Windows 表单应用程序的 Console.WriteLines 吗?
在这种情况下,只需使用 Console.SetOut(Stream) 并传入您正在包装的内容,以便您也可以将其输出到其他地方。
另一种选择是将所有 Console.WriteLines 切换为 Trace.WriteLine 并在某处添加一个 TraceListener 来执行您想要的操作。