Languages/C#
C# - 윈도우 폼(Win Form) - 데이터 그리드 뷰(DataGridView) 버퍼
라큐브
2021. 11. 1. 01:44
WinForm의 기본 컨트롤은 외부 라이브러리 없이도 UI를 구성할 수 있도록 도와준다.
그러나 엑셀과 같은 데이터 시트를 표현할려면 DataGridView 컨트롤이 필수인데 가장 큰 단점이 있다...
- 부자연스러운 스크롤
- 스크롤 시 깜박임
즉, 배포용 소프트웨어로 사용하기 부적절하다.
Dev Express, Spread 같은 외부 라이브러리를 사용하는 이유
자본주의의 위대함!
하지만 외부 라이브러리의 큰 단점인 참조, 라이센스 비용이 발목을 잡는다.
DataGridView 한정해서 애물단지인 WinForm 기본 컨트롤
저 문제만 해결하면 외부 라이브러리 없이 기본 컨트롤 만으로 충분하지 않을까?
고민하다가 찾게된 방법이 "DoubleBuffered" 속성이다.
void ApplyDataGridViewDoubleBuffer(DataGridView gridView){
typeof(DataGridView).InvokeMember("DoubleBuffered", System.Reflection.BindingFlags.NonPublic |System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.SetProperty, null, gridView, new object[] { true });
}
사용법은 위 메소드를 추가하고 인자로 "DoubleBuffered" 속성를 적용할 "DataGridView" 명칭을 넣어주면 된다.
반응형