2014-01-07 21 views
0

我有以下代码:我怎样才能填补datagridview的更快C#

private void copyCloneRowFromdgvCustomMainTodgvCustomSingleExtraction(int[] vect) 
    { 
     dgvCustomSingleExtraction.Rows.Clear(); 
     DataGridViewRow row = new DataGridViewRow(); 
     int i = 0; 
     dgvCustomSingleExtraction.ColumnCount = dgvCustomMain.ColumnCount; 
     for (; i < dgvCustomMain.ColumnCount; i++) 
      dgvCustomSingleExtraction.Columns[i].HeaderCell.Value = dgvCustomMain.Columns[i].HeaderCell.Value; 

     for (i = 0; i < vect.Length; i++) 
     { 
      int intColIndex = 0; 
      row = (DataGridViewRow)dgvCustomMain.Rows[vect[i]].Clone(); 
      foreach (DataGridViewCell cell in dgvCustomMain.Rows[vect[i]].Cells) 
      { 
       row.Cells[intColIndex].Value = cell.Value; 
       intColIndex++; 
      } 

      dgvCustomSingleExtraction.Rows.Add(row); 
     } 
    } 

用这种方法我想创建一个新的DataGridView与处于dgvCustomMain随机行。所以我用int[] vect它是一个随机数组(从0dgvCustomMain.Count - 1)。现在,如果数组较小,例如1500个元素,则需要188ms,如果数组较大(例如15000个元素),则需要大约1800毫秒,如果它比150000个元素更大,则需要大约20秒。现在我的问题是:如何更快地填充datagridview?

编辑

我看看here,但我不知道如何实现它。有人可以帮助我吗?

回答

1

你可以用虚拟方式,提高DataGridView的效率

在这里看到:link