He creado una biblioteca que descarga la mayor parte de su texto de depuración usando Console.WriteLine();Redirigir la salida de la consola a winforms ListBox
Ahora estoy en proceso de usar la biblioteca en una aplicación de Windows Forms, y aún necesito acceso a la salida de la consola. (Para mostrar en un cuadro de lista/texto enriquecido)
Me di cuenta de que puedo anular el estándar de la consola a un TextWriter, pero ¿cómo puedo obtener estos datos en la pantalla.
He intentado hacer algo en la línea de
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);
}
}
pero fue en vano. ¿Algunas ideas?
Se eliminó el código no deseado.
esto hace exactamente lo que im: D Gracias – Fusspawn