C# DataGridView、行の再描画を高速化する
行の自動サイズ変更は外しておく
どうしても必要なら
直前に停止して処理後、再度適応
サイズ変更なしより多少時間はかかるが、しないよりは大分まし
dgvDataList .AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;
実処理
dgvDataList .AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
遅い書き方(1行づつ追加)
private DataGridView dgvDataList = new DataGridView();
public void setRowCell(List
{
int idx = 0;
dgvDataList.Rows.Add();
idx = dgvDataList.Rows.Count - 1;
for (int i = 0; i < DataList.Count; i++)
{
dgvDataList.Rows[idx].Cells[0].Value = DataList[i].Data1;
dgvDataList.Rows[idx].Cells[1].Value = DataList[i].Data2;
dgvDataList.Rows[idx].Cells[2].Value = DataList[i].Data3;
if (i < (DataList.Count - 1))
{
dgvDataList.Rows.Add();
idx = DataList.Rows.Count - 1;
}
}
}
高速化の書き方(全行一気に追加)
private DataGridView dgvDataList = new DataGridView();
public void setRowCell(List
{
DataGridViewRow[] rows = new DataGridViewRow[DataList.Count];
for (int i = 0; i < DataList.Count; i++)
{
object[] cellValues = new object[]{
DataList[i].Data1,
DataList[i].Data2,
DataList[i].Data3,
};
DataGridViewRow row = new DataGridViewRow();
row.CreateCells(dgvDataList);
row.SetValues(cellValues);
rows[i] = row;
}
dgvDataList.Rows.AddRange(rows);
}
- 関連記事
-
- C# DataGridView、行の再描画を高速化する (2014/10/27)
- C#でスカラー変数を使用した時に、中身のクエリ的な文字列出力クラス (2014/02/26)
- C# xmlファイルをMS932の文字コードで出力する (2014/02/17)
スポンサーサイト
- プログラム(備忘録)の関連記事
-
- C# DataGridView、行の再描画を高速化する « «
- C#でスカラー変数を使用した時に、中身のクエリ的な文字列出力クラス (2014/02/26)
- C# xmlファイルをMS932の文字コードで出力する (2014/02/17)
2014/10/27 Mon. 23:53 [edit]
category: プログラム(備忘録)
tag: プログラム
« 2014年タオル祭り
チェーンオイル比較 »
| h o m e |