VB.NET DataGridView 속도개선하기 (DoubleBuffered 이용)

2020. 4. 10. 10:29VB.NET

728x90
반응형

DataGridView에 Cell Style도 넣고

Border, HeaderAutoSize 등등등 DataGridView에 많은 Style을 지정하고 나서

스크롤을 하는데 눈에 보일 듯한 정도의 버벅임이 생기더라고요 ...

이걸 해결하는 방법은 아래 사이트에 코드를 참고해서 작성하시면 되는데

Control의 Hidden Property인 DoubleBuffered를 Custom하여 Enable 할 수 있습니다.


출처 : https://www.codeproject.com/Tips/1111155/Enable-DataGridView-DoubleBuffered-Property



DataGridView를 상속한 Class 생성

Public Class DataGridViewDoubleBuffer
    Inherits DataGridView
    Private _dgv As DataGridView
    Public Sub New(ByRef dgv As DataGridView)
        _dgv = dgv
    End Sub
    Public Sub EnableDoubleBuffered()
        Dim dgvType As Type = _dgv.[GetType]()
        Dim pi As Reflection.PropertyInfo = dgvType.GetProperty("DoubleBuffered", _
                                                      Reflection.BindingFlags.Instance Or _
                                                      Reflection.BindingFlags.NonPublic)
        pi.SetValue(_dgv, True, Nothing)
    End Sub    
End Class

 

사용할 때

Public Sub New()
    InitializeComponent()
    
    Dim dgvDouble As DataGridViewDoubleBuffer = New DataGridViewDoubleBuffer(DataGridView1)
    dgvDouble.EnableDoubleBuffered()
End Sub





728x90
반응형