在Windows窗体中将控制台输出定向到文本框的好方法是什么?

mut*_*ial 2 c# textbox

在C#中,在Windows窗体中将控制台输出定向到文本框的好方法是什么?

如果我有一个具有console.WriteLine的现有程序,我是否需要重载Windows窗体文本框中的函数?

Alg*_*das 12

创建一个写入文本框的文本编写器:

    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; }
        }
    }
Run Code Online (Sandbox Code Playgroud)

并将控制台输出重定向到此编写器:

        //...

        public Form()
        {
            InitializeComponent();
        }

        private void Form_Load(object sender, EventArgs e)
        {
            Console.SetOut(new TextBoxWriter(txtConsole));
            Console.WriteLine("Now redirecting output to the text box");
        }
Run Code Online (Sandbox Code Playgroud)

  • 你应该真的覆盖Write(char [] buffer,int index,int count),否则它会变坏. (2认同)