Изменение ширины всех столбцов в DataGridView - PullRequest
1 голос
/ 06 июля 2011

У нас есть DataGridView, который имеет 2048 столбцов.Мы должны предоставить пользователю возможность увеличивать и уменьшать ширину всех столбцов в DataGridView.

В настоящее время мы делаем следующее в обработчике нажатий кнопок:

for (int i = 0; i < dgv.Columns.Count; i++)
{
   dgv.Columns[i].Width += 5;
}

Но этозанимает время!(около 2 секунд, чтобы быть более конкретным).(Примечание. Мы устанавливаем для свойства ColumnHeadersHeightSizeMode значение DataGridViewColumnHeadersHeightSizeMode.DisableResizing, чтобы повысить производительность, но это не снижает ее)

Существует ли более быстрый способ изменения размера столбца?

1 Ответ

1 голос
/ 06 июля 2011

Вы можете попробовать прикрепить отдельное событие к нажатию кнопки для каждого столбца, что-то вроде этого:

for (int i = 0; i < 500; i++)
{
    DataGridViewTextBoxColumn c = new DataGridViewTextBoxColumn();
    dataGridView1.Columns.Add(c);

    button1.Click += (o, e) => {                    
        c.Width = 10;                    
    };
}

Я попробовал это на догадку, и похоже, что это работает.Хотя я не уверен, есть ли какие-либо побочные эффекты, есть ли лучший метод или даже он будет работать для нетривиального примера - все мои столбцы пусты и не связаны.

...