2014-01-07 58 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