VB.NET/DataGridViewを高速化する
DataSourceを使う †
DataGridViewのDataSourceを利用してSQL結果を直接バインドする。
ダブルバッファリングを使う †
ダブルバッファリングを使って表示のちらつき防止を行う。
記述例 †
''' <summary> ''' コントロールのDoubleBufferedプロパティをTrueにする ''' </summary> ''' <param name="control">対象のコントロール</param> Public Sub EnableDoubleBuffering(control As Control) control.GetType().InvokeMember( "DoubleBuffered", BindingFlags.NonPublic Or BindingFlags.Instance Or BindingFlags.SetProperty, Nothing, control, New Object() {True}) End Sub 'データグリッドビューをダブルバッファリングにしてちらつき防止 EnableDoubleBuffering(DataGridView1)
RowHeadersWidthSizeModeプロパティ †
それでも遅い場合は、RowHeadersWidthSizeModeプロパティの値がAutoSizeToAllHeadersになっていないか確認する。
なっている場合は、DataSourceにバインドしている間はプロパティ値をEnableResizingに変更しておく。
(AutoSizeToAllHeadersになっていると、一行表示するたびに列幅を自動伸縮させるので遅くなる。)
記述例 †
DataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.EnableResizing DataGridView1.DataSource = result DataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders
このページのURL: