Остановить мерцание ToolStripStatusLabel из-за объема данных из данных - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть ToolStripStatusLabel с загрузкой данных в режиме реального времени, так много информации поступает, что она становится нечитаемой.

Есть ли для этого функция двойного буфера?Я пробовал следующее:

public static void DoubleBufferedToolStripStatusLabel(this ToolStripStatusLabel tssl, bool setting)
{
     Type dgvType = tssl.GetType();
     PropertyInfo pi = dgvType.GetProperty("DoubleBuffered", 
     BindingFlags.Instance | BindingFlags.NonPublic);
     pi.SetValue(tssl, setting, null);
}

1 Ответ

0 голосов
/ 15 апреля 2019

Как насчет обновления только каждую секунду, а не каждый раз, когда требуется обновление?

DateTime _lastUpdated = DateTime.MinValue;

void UpdateStatusLabel(string text)
{
    if(DateTime.Now > _lastUpdate)
    {
        ToolStripStatusLabel.Text = text;
        _lastUpdate = DateTime.Now + TimeSpan.FromSeconds(1);
    }
}
...