| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- using System.Text;
- namespace qdr.app.tools.qfu.gui
- {
- internal class RTFConsoleTextWriter : TextWriter
- {
- public override Encoding Encoding => Encoding.UTF8;
- private RichTextBox _richTextBox;
- public RTFConsoleTextWriter(RichTextBox outputRtfBox)
- {
- _richTextBox = outputRtfBox ?? throw new ArgumentNullException(nameof(outputRtfBox));
- }
- public override void WriteLine(string? value)
- {
- if (value == null) return;
- Write(value);
- }
- public override void Write(string? value)
- {
- if (value == null) return;
- // Convert the string to RTF format
- string rtfValue = ConvertToRtf(value);
- // Write the RTF formatted string to the console
- if (_richTextBox.InvokeRequired)
- {
- _richTextBox.Invoke(new Action(() => AppendRtfText(rtfValue)));
- }
- else
- {
- AppendRtfText(rtfValue);
- }
- }
- private void AppendRtfText(string rtfValue)
- {
- _richTextBox.AppendText(rtfValue);
- _richTextBox.SelectionStart = _richTextBox.TextLength;
- _richTextBox.ScrollToCaret();
- }
- private string ConvertToRtf(string value)
- {
- return value + "\r";
- }
- }
- }
|