Dot-Net

如何提高 DataGridView 的繪製性能?

  • November 23, 2010

(抱歉英語不好)

我對重新繪製時的性能有很大的問題。DataGridView

我正在使用 aDataGridView來顯示來自外部應用程序流的日誌。來自流的消息以高頻率(小於 1 毫秒)進入。DataGridView如果我在每條新消息到來時立即添加新行,DataGridView則在下一條消息到來之前沒有時間重新繪製自己。

DataGridView一種可能的解決方案是使用隊列來收集消息,然後每 100 毫秒使用隊列中的消息重新繪製一次。這很好,但是DataGridView當它自動滾動到最後一行時會閃爍。(平滑滾動被禁用)

你能幫我提高DataGridView性能嗎?

我最近遇到了一些緩慢的問題,DataGridView解決方案是以下程式碼

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

它為對像打開雙緩衝DataGridView。只需致電DoubleBuffered()您的 DGV。希望能幫助到你。

**編輯:**我可能已經得到了這個,但我現在無法搜尋原件,所以這只是為了強調程式碼不是我的。

引用自:https://stackoverflow.com/questions/4255148