실시간으로 데이터를 수집하여 DataGridView에 데이터를 나타내기 위해 데이터를 추가할 때 점점 갈 수록

속도가 오래걸리는 현상을 발견했습니다. (1400개 이상 데이터)

 

Column 수가 많아 DataGridView의 영역이 벗어날 때 

데이터를 추가할 때마다 DataGridView를 벗어난 영역이 깜빡이는 것을 확인 할 수 있었습니다.

이 때문에 점점 느려진다고 판단하였습니다.

 

 

이를 해결하기 위해서는 DataGridView에 더블버퍼를 설정해야합니다.

 

설정하는 방법은 아래 포스팅을 참조해주세요.

[C#] - [C#, DataGridView] 데이터 추가시 DataGridView 깜빡임 문제 해결

 

더블버퍼를 설정하면 데이터 양이 많아질 수록 속도가 안 느려지는 것은 아니지만, 

훨씬 개선된 것을 느낄 수 있습니다.

 

 

출처: https://stackoverflow.com/questions/10226992/slow-performance-in-populating-datagridview-with-large-data

반응형

DataGridView에 source를 등록 후 

새로운 row나 값을 추가 할 때 DataGridView가 깜빡이는 현상을 볼 수 있습니다.

 

이것을 해결하기 위해서 더블버퍼를 설정 해 주어야 합니다.

 

 


   

using System.Reflection;


public partial class Form1 : Form
{
   ...
   
   
  ...


  private void Init_DataGridView()
  {
    dataGridView1.DoubleBuffered(true);
  }
}

public static class ExtensionMethods 
{ 
  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); 
  } 
}

 

 

출처: https://stackoverflow.com/questions/41893708/how-to-prevent-datagridview-from-flickering-when-scrolling-horizontally

반응형

+ Recent posts