मैंने एक लाइब्रेरी बनाई है जो कंसोल.WriteLine() का उपयोग करके अपने अधिकांश डीबग टेक्स्ट को डंप करता है;Winforms को कंसोल आउटपुट को पुनर्निर्देशित करना ListBox
अब मैं विंडोज़ फॉर्म एप्लिकेशन में लाइब्रेरी का उपयोग करने की प्रक्रिया हूं, और अभी भी कंसोल आउटपुट तक पहुंच की आवश्यकता है। (एक सूची/रिचटेक्स्ट बॉक्स में प्रदर्शित करने के लिए)
मैंने नोट किया कि मैं कंसोल के मानक को टेक्स्टवाइटर पर ओवरराइड कर सकता हूं, लेकिन फिर मैं इस डेटा को डिस्प्ले में कैसे प्राप्त करूंगा।
मैं
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);
}
}
की तर्ज पर लेकिन कोई लाभ नहीं हुआ कुछ कर की कोशिश की। कोई विचार?
अनइडेड कोड हटा दिया गया।
यह ठीक है जो बाद में करता है: डी धन्यवाद – Fusspawn