C# WinForm中截获Console输出
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# WinForm中截获Console输出相关的知识,希望对你有一定的参考价值。
现在有一Console 控制台程序,使用Console将日志输出到控制台中,现在想进行调整,改为WinForm程序,将日志输出到界面中。但是重写输出比较麻烦。有没有办法将原来调用Console.Write输出的结果输出到界面中。
C#控制台窗体(Console Window)内容输出到文本文件//设置控制台输出
Console.SetOut(sw);
//输出Console内容到文本文件
public void WriteConsoleText()
StringWriter sw = new StringWriter();
//Sets the System.Console.Out property to the specified System.IO.TextWriter object.
//设置控制台窗体输出
Console.SetOut(sw);
Console.WriteLine("输出内容1");
Console.WriteLine("输出内容2");
Console.WriteLine("测试1");
File.WriteAllText(@"c:\aaa.txt", sw.ToString());
参考技术A 要直接输出的话得重绘背景,很麻烦的。
用个Label控件或TextBox来显示就行了
C# winform 缩小到托盘 无法关机?
Form_Closing 事件是让它hide()
但这样就无法关机了,怎么解决呢?
我关闭事件里这样写
if (!this.isExitApp)
e.Cancel = true;
this.WindowState = FormWindowState.Minimized;
this.Hide();
但结果是,关机的时候,其它能关的都关了,唯独这个关不了
应该截获关机消息处理之。
改为:
private bool isExitApp = false;
private const int WM_QUERYENDSESSION = 0x0011;
protected override void WndProc(ref Message m)
switch (m.Msg)
case WM_QUERYENDSESSION:
isExitApp = true;
break;
default:
base.WndProc(ref m);
break;
private void Form7_FormClosing(object sender, FormClosingEventArgs e)
if (!this.isExitApp)
e.Cancel = true;
this.WindowState = FormWindowState.Minimized;
this.Hide();
参考技术A 怎么会呢?
关机的时候什么都结束了啊! 参考技术B 我也觉得不可能...而且你关闭的时候最小化干什么?? 参考技术C 这个关不了是什么意思?关机的时候是要先关闭你的所有进程,这块由你的操作系统办,跟你代码怎么写的应该没什么关系
以上是关于C# WinForm中截获Console输出的主要内容,如果未能解决你的问题,请参考以下文章
c# winform中怎么截获处理windows关闭的消息 C#
C# - Winform: 在窗体加载的过程中截获异常,如何不让窗体显示出来。