コンソール アプリケーションがあり、そのための 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' は、それが作成されたスレッド以外のスレッドからアクセスされました。