将控制台输出引导到Windows窗体中的文本框的好方法是什么

本文关键字:文本 是什么 方法 窗体 输出 控制台 Windows | 更新日期: 2023-09-27 17:58:40

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

如果我有一个现有的程序有控制台。WriteLine,我需要重载Windows窗体文本框中的函数吗?

将控制台输出引导到Windows窗体中的文本框的好方法是什么

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

    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; }
        }
    }

并将控制台输出重定向到此写入程序:

        //...
        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");
        }
button_Click(object sender, EventArgs e)
{
   try
   {
      // Do stuff
   }
   catch(Exception exception)
   {
      // Couldn't do stuff. Log the exception.
      myTextBox.Text += "'n" + exception.Message;
   }
}

应该这样做。