流写入覆盖不仅仅是“写入”功能

本文关键字:写入 功能 不仅仅是 覆盖 | 更新日期: 2023-09-27 18:31:34

这是我当前为我的教科编写器类编写的代码:

using System;
using System.Text;
using System.IO;
using System.Windows.Forms;
namespace ConsoleRedirection
{
    public class TextBoxStreamWriter : TextWriter
    {
        TextBox _output = null;
        public TextBoxStreamWriter(TextBox output)
        {
            _output = output;
        }
        public override void Write(char value)
        {
            base.Write(value);
            _output.AppendText(value.ToString());
        }
        public override void Write(string value)
        {
            _output.AppendText(value);
        }
        public override Encoding Encoding
        {
            get { return Encoding.UTF8; }
        }
    }
}

如您所见,覆盖 Write 函数可以正常工作,但我希望能够覆盖从"清除"到"颜色"设置的所有内容。我尝试添加清除覆盖,但它说没有什么可覆盖的。

如何在 System.Console 中覆盖我需要的所有功能?

流写入覆盖不仅仅是“写入”功能

仅仅是因为TextWriter不包含清除或颜色设置功能。
检查 msdn。
尝试创建一个新方法而不覆盖,例如:

public void Clear()
{
    _output.Clear();
}

如果您尝试编辑文本框内容,请尝试此代码

using System;
using System.Text;
using System.IO;
using System.Windows.Forms;
namespace ConsoleRedirection
{
    public class TextBoxStreamWriter
    {
        TextBox _output = null;
        public TextBoxStreamWriter(ref TextBox output)
        {
            _output = output;
        }
        public void Write(char value)
        {
            _output.AppendText(value.ToString());
        }
        public void Write(string value)
        {
            _output.AppendText(value);
        }
        public Encoding Encoding
        {
            get { return Encoding.UTF8; }
        }
        public void clear()
        {
            _output.Clear();
        }
        public void textColor(System.Drawing.Color color)
        {
            _output.ForeColor = color;
        }
    }
}

以及创建类的新实例

ConsoleRedirection.TextBoxStreamWriter tbxw = new ConsoleRedirection.TextBoxStreamWriter(ref textbox1);