Merakam Output Konsol dalam C# Windows Forms TextBox
Banyak aplikasi C# Windows Forms perlu menjalankan aplikasi konsol luaran dan memaparkan outputnya dalam antara muka pengguna aplikasi. Penyelesaian biasa ialah mengubah hala keluaran konsol ini ke TextBox. Panduan ini menggariskan proses.
Langkah utama melibatkan memulakan proses luaran dengan pengalihan semula output, mengendalikan peristiwa output, dan kemudian memantau proses.
Memulakan Proses dan Mengubah Hala Keluar:
Mulakan dengan mencipta objek Process
dan mengkonfigurasi sifat StartInfo
nya untuk mengubah hala output standard dan aliran ralat standard:
<code class="language-csharp">Process p = new Process(); p.StartInfo.FileName = @"C:\ConsoleApp.exe"; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardError = true; p.EnableRaisingEvents = true; p.StartInfo.CreateNoWindow = true; // Prevents a separate console window p.Start();</code>
Memproses Acara Output:
Seterusnya, daftarkan pengendali acara untuk acara OutputDataReceived
dan ErrorDataReceived
. Peristiwa ini berlaku apabila proses luaran menghantar data ke output standard atau aliran ralat standardnya. Pengendali acara tunggal boleh digunakan untuk kedua-duanya:
<code class="language-csharp">p.ErrorDataReceived += Proc_DataReceived; p.OutputDataReceived += Proc_DataReceived; p.BeginErrorReadLine(); p.BeginOutputReadLine();</code>
Pengendali acara Proc_DataReceived
(yang anda perlu tentukan) akan menerima data output dan mengemas kini TextBox dengan sewajarnya. Contohnya:
<code class="language-csharp">private void Proc_DataReceived(object sender, DataReceivedEventArgs e) { if (e.Data != null) { this.textBox1.Invoke((MethodInvoker)delegate { textBox1.AppendText(e.Data + Environment.NewLine); }); } }</code>
Berlari dan Menunggu Proses:
Akhir sekali, mulakan proses dan tunggu sehingga ia selesai:
<code class="language-csharp">p.Start(); p.WaitForExit();</code>
Dengan mengikuti langkah-langkah ini, anda boleh menyepadukan keluaran aplikasi konsol luaran dengan lancar ke dalam aplikasi C# Windows Forms anda, memberikan maklum balas masa nyata dan meningkatkan pengalaman pengguna. Ingat untuk mengendalikan kemungkinan pengecualian dan pertimbangkan untuk menambah pemeriksaan ralat untuk kekukuhan.
Atas ialah kandungan terperinci Bagaimana untuk Mengalihkan Output Konsol ke TextBox dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!