c# – 将控制台输出绑定到RichEdit
发布时间:2020-12-16 01:38:10 所属栏目:百科 来源:网络整理
导读:这么简单的问题.我有一个带有大量Console.Writeline代码的c#.dll,并且希望能够使用此.dll在表单应用程序中查看该输出.是否有一种相对简单的方法将控制台输出绑定到RichEdit(或其他合适的控件)?或者,我可以在表单中嵌入一个实际的控制台 shell吗?我发现了一
这么简单的问题.我有一个带有大量Console.Writeline代码的c#.dll,并且希望能够使用此.dll在表单应用程序中查看该输出.是否有一种相对简单的方法将控制台输出绑定到RichEdit(或其他合适的控件)?或者,我可以在表单中嵌入一个实际的控制台
shell吗?我发现了一些类似的问题,但在大多数情况下,人们希望能够收到控制台输入,这对我来说没有必要.
谢谢. 解决方法
您可以使用Console.SetOut()重定向输出.这是一个演示该方法的示例表单.删除表单上的RichTextBox和按钮.
public partial class Form1 : Form { public Form1() { InitializeComponent(); button1.Click += button1_Click; Console.SetOut(new MyLogger(richTextBox1)); } class MyLogger : System.IO.TextWriter { private RichTextBox rtb; public MyLogger(RichTextBox rtb) { this.rtb = rtb; } public override Encoding Encoding { get { return null; } } public override void Write(char value) { if (value != 'r') rtb.AppendText(new string(value,1)); } } private void button1_Click(object sender,EventArgs e) { Console.WriteLine(DateTime.Now); } } 我认为它不会很快但是我尝试的时候看起来还不错.您可以通过覆盖更多方法进行优化. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |