using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Threading; using C4IT.DataHistoryProvider; namespace C4IT_DataHistoryProvider_Test { public partial class ctrlProtocolBox : UserControl { public ctrlProtocolBox() { InitializeComponent(); } public void ProcessMessage(string Message) { Invoke(new ThreadStart(() => { try { lock (richTextBox1) { if (richTextBox1.Lines.Length > 512) { richTextBox1.ReadOnly = false; richTextBox1.Select(0, richTextBox1.GetFirstCharIndexFromLine(richTextBox1.Lines.Length - 512)); richTextBox1.SelectedText = ""; richTextBox1.ReadOnly = true; } richTextBox1.AppendText(Message); richTextBox1.AppendText(Environment.NewLine); Application.DoEvents(); } } catch { } })); } public void ProcessMessage(cDataHistoryUiStatusMessage Message) { string line = new string(' ', Message.Indent * 3) + Message.Message; ProcessMessage(line); } public void ClearMessages() { Invoke(new ThreadStart(() => { try { lock (richTextBox1) { richTextBox1.Text = ""; Application.DoEvents(); } } catch { } })); } private void ctrlProtocolBox_Load(object sender, EventArgs e) { richTextBox1.HideSelection = false; } } }