본문 바로가기
C++ 200제/코딩 IT 정보

c# Listview 깜박임 - 더블버퍼링으로 화면 갱신 깜빡임 해결

by vicddory 2019. 10. 20.

c# listview 깜박임 해결 방법입니다. 리스트뷰 깜빡임 현상은 화면 갱신할 때 발생하는데요. Items, Item.SubItems를 편집할 때 발생합니다.


해결 방법은 아주 간단합니다. 클래스를 하나 추가하고 리스트뷰에 더블버퍼링 적용하면 됩니다.


일단, 아래 클래스를 편한 곳에 삽입하세요. 프로젝트 클래스에 추가하는 겁니다.



c# 리스트뷰 깜박임.txt


1
2
3
4
5
6
7
8
9
10
public static class Extensions // 리스트뷰 깜박임 제거
{
    public static void DoubleBuffered(this Control control, bool enabled)
    {
        var prop = control.GetType().GetProperty(
            "DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic);
 
        prop.SetValue(control, enabled, null);
    }
}
cs



그리고 폼 load 함수에 DoubleBuffered 함수를 설정합니다(true).


1
2
3
4
5
6
protected virtual bool DoubleBuffered { get; set; }
 
private void MainForm_Load(object sender, EventArgs e)
{
    listview.DoubleBuffered(true);
}
cs



이정도면 c# listview 깜빡임 해결 됩니다.


C# Listview 화면 갱신 시 발생하는 깜박임 전체 소스 코드는 위에 있는 txt 파일입니다. 참고하세요.


관련 글

C# ListBox 리스트박스 사용 예제 (DB 바운딩, List 응용 등)

C# 파일과 폴더, 드래그 앤 드롭 예제 (마우스 Drag Listview)

댓글