Console.WriteLine()을 사용하여 대부분의 디버그 텍스트를 덤프하는 라이브러리를 빌드했습니다.콘솔 출력을 winforms로 리디렉션 ListBox
저는 이제 Windows Forms 응용 프로그램에서 라이브러리를 사용하는 과정에 있으며 콘솔 출력에 계속 액세스해야합니다. (목록/리치 텍스트 상자에 표시)
눈치 채기 콘솔의 표준을 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);
}
}
의 라인을 따라하지만 아무 소용이 일을 시도. 어떤 아이디어?
불필요한 코드가 제거되었습니다.
다음과 정확히 일치합니까? D Thanks – Fusspawn