Top/VB.NET/DataGridViewを高速化する

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
このページを共有:
  • このページをはてなブックマークに追加 このページを含むはてなブックマーク
  • このページをlivedoor クリップに追加 このページを含むlivedoor クリップ
  • このページをYahoo!ブックマークに追加
  • このページを@niftyクリップに追加
  • このページをdel.icio.usに追加
  • このページをGoogleブックマークに追加

このページのURL:

ページ新規作成

新しいページはこちらから投稿できます。

TOP