WindowsForms应用程序中的控制台输出

时间:2017-10-25 10:47:37

标签: c# winforms windows-console

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

如果我将属性中的输出类型更改为“控制台应用程序”,则控制台窗口和窗体都会显示。但是我需要先显示表单窗口,当我单击一个按钮时,只有控制台窗口需要显示输出值。

请指导我......

提前致谢。

3 个答案:

答案 0 :(得分:0)

使用NativeMethods.AllocConsole();为其分配控制台和I / O.

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

答案 1 :(得分:0)

每个进程最多只能有一个与之关联的控制台。您可以采用以下几种方法:要么在启动时立即隐藏控制台窗口并稍后显示(通过 ShowWindow ),要么将项目保留为窗口应用程序,并创建稍后使用 AllocConsole 手动控制台。

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

答案 2 :(得分:0)

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