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

VB.NET/DataGridViewを高速化する のバックアップの現在との差分(No.1)


  • 追加された行はこの色です。
  • 削除された行はこの色です。
#author("2020-02-26T11:37:19+09:00","","")
#author("2020-02-26T12:40:30+09:00","","")
*DataSourceを使う [#zc9e5a55]
DataGridViewのDataSourceを利用してSQL結果を直接バインドする。

それでも遅い場合は、RowHeadersWidthSizeModeプロパティ値がAutoSizeToAllHeadersになっていないか確認する。
*ダブルバッファリングを使う [#c5a20d14]
ダブルバッファリングを使って表示のちらつき防止を行う。

**記述例 [#d1885ee2]
 ''' <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プロパティ [#oa42230c]
それでも遅い場合は、RowHeadersWidthSizeModeプロパティの値がAutoSizeToAllHeadersになっていないか確認する。
なっている場合は、DataSourceにバインドしている間はプロパティ値をEnableResizingに変更しておく。
(AutoSizeToAllHeadersになっていると、一行表示するたびに列幅を自動伸縮させるので遅くなる。)

*記述例 [#i7c744c5]
**記述例 [#p0134639]
 DataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.EnableResizing
 DataGridView1.DataSource = result
 DataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders


ページ新規作成

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

TOP