2010-07-25 4 views
0

Мне нужно использовать элемент управления DataGridView для отображения большого количества столбцов. У меня есть класс DataGridViewCell, который определяет настраиваемый метод Paint для каждой ячейки. Я добавил столбцов, как так ...DataGridView и добавление столбцов программно

 int ColumnCount = 5000; 
     DataGridViewTextBoxCell cell = new DataGridViewTextBoxCell(); 
     for (int i = 0; i < ColumnCount; i++) 
     { 
      dataGridView1.Columns.Add(new DataGridViewColumn() { CellTemplate = cell, FillWeight = 1 }); 
     } 

Проблема заключается в том, это занимает возрастов, чтобы добавить все столбцы, гораздо дольше, чем это действительно надо брать. Когда я добавляю столбцы, я вижу, что размер полосы прокрутки внизу DataGridView становится меньше, так как сетка рисует каждый столбец каждый раз, когда я добавляю его.

Кто-нибудь знает более быстрый способ добавить большое количество столбцов или как предотвратить обновление DataGridView до тех пор, пока все столбцы не будут добавлены?

Я попытался отключить изменение размера, SuspendLayout() и установить dataGridView1.Visible = false.

+1

Попробуйте создать коллекцию массива столбцов, а затем добавьте ее в сетку вместо добавления ее в сетку в цикле for. – JPReddy

ответ

0

Если вы используете VirtualMode = TRUE для DataGridView, вы можете обновить ТОЛЬКО часть экрана.

Смежные вопросы