gpt4 book ai didi

c# - WPF RichTextBox 作为用于记录目的的文本队列

转载 作者:行者123 更新时间:2023-11-30 14:01:46 29 4
gpt4 key购买 nike

我想使用 RichTextBox WPF 控件来打印日志输出,但我想知道在显示超过 10,000 行之后删除“最旧”行的最有效方法是什么,如果可以的话实际上实现了一个队列行为,特别是因为没有简单的“文本”属性可以使用。

不幸的是,我无法通过 nlog 获得此结果probably due to a bug or a limitation .

最佳答案

您可以使用 Queue<string>存储您的日志消息,并使用 RichTextBox.Lines 显示它们属性(property)。

例如:

    private const int _maxCapacity = 10000;

private Queue<string> _messageQueue = new Queue<string>(_maxCapacity);

private void button1_Click(object sender, EventArgs e)
{
if (_messageQueue.Count >= _maxCapacity)
{
_messageQueue.Dequeue();
}

_messageQueue.Enqueue("message " + _count++.ToString());

richTextBox1.Lines = _messageQueue.ToArray();
}

如果您希望最新的消息出现在顶部,请反转队列:

richTextBox1.Lines = _messageQueue.Reverse().ToArray();

关于c# - WPF RichTextBox 作为用于记录目的的文本队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7669490/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com