Перенаправление вывода на консоль в winforms ListBox

Я построил библиотеку, которая выводит большую часть своего текста отладки, используя Console.WriteLine ();

Сейчас я нахожусь в процессе использования библиотеки в приложении Windows Forms, и мне по-прежнему нужен доступ к выходным данным консоли. (Для отображения в окне списка / RichText)

Я заметил, что могу переопределить стандарт из консоли на TextWriter, но как бы я тогда перенес эти данные на дисплей.

Я пытался сделать что-то вроде

  public partial class Form1 : Form
  {
    Timer T;
    MemoryStream mem;
    StreamWriter writer; 


    public Form1()
    {

        InitializeComponent();
        mem = new MemoryStream(1000);
        writer = new StreamWriter(mem);
        Console.SetOut(writer);

        T = new Timer();
        T.Interval = 250; // yes this probally is to short.
        T.Tick += new EventHandler(T_Tick);
        T.Start();


        Console.WriteLine("output");
        Console.WriteLine("AnotherLine");
    }

    void T_Tick(object sender, EventArgs e)
    {
        string s = Encoding.Default.GetString(mem.ToArray());
        string[] Lines = s.Split(Environment.NewLine.ToCharArray());
        Output.Items.Clear(); // Output is a listbox 
        foreach (string str in Lines)
            Output.Items.Add(str);
    }
}

но безрезультатно. Есть идеи?

Ненужный код удален.

Ответы на вопрос(2)

Ваш ответ на вопрос