Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 도커
- js
- javascript
- 도커 이미지
- vscode extension
- React Redux
- 리덕스
- docker layer
- Docker
- Docker image
- redux
- Git
- asp.net core
- Asp Net Core
- 리액트
- react ts
- 리액트 리덕스
- ASP Core
- 도커 레이어
- react
- asp core mvc
- asp.net core mvc
- 도커 컨테이너
- asp core 권한
- 리액트 타입스크립트
- 리액트 타입스크립트 적용하기
- c# delegate
- react typescript
- docker container
- C#
Archives
- Today
- Total
기초 메모지
C# - 윈도우 폼(Win Form) - 데이터 그리드 뷰(DataGridView) 버퍼 본문
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" 명칭을 넣어주면 된다.
반응형
'Languages > C#' 카테고리의 다른 글
C# - 내장 리소스(Embedded Resource) (0) | 2022.06.29 |
---|---|
C# - 윈도우 폼(WinForm) / 윈도우 테마 연동 (0) | 2022.05.02 |
C# - 이벤트(Event) (0) | 2022.04.03 |
C# - LINQ(Language-Integrated Query) (0) | 2022.01.03 |
C# - 대리자, 델리게이트(Delegate) (0) | 2021.11.08 |
Comments