我有一个控制台应用程序,现在我想为它制作一个 GUI 我想将控制台文本发送到一个文本框我知道这被问到了更多但我无法让它工作:S:S
我在 Form1 Load 中使用了这段代码:
private void Form1_Load(object sender, EventArgs e)
{
Console.SetOut(new TextBoxWriter(consoleTextbox));
}
这是 TextBoxWriter 类:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace KLFClient
{
public class TextBoxWriter : TextWriter
{
TextBox _output = null;
public TextBoxWriter(TextBox output)
{
_output = output;
}
public override void Write(char value)
{
base.Write(value);
_output.AppendText(value.ToString());
}
public override Encoding Encoding
{
get { return System.Text.Encoding.UTF8; }
}
}
}
但是当我启动我的程序并启动我的服务器系统时,它会返回这个错误:
System.Windows.Forms.dll 中出现“System.InvalidOperationException”类型的未处理异常
附加信息:跨线程操作无效:控件“consoleTextbox”从创建它的线程以外的线程访问。