Как уменьшить скорость установки DataGridView - PullRequest
0 голосов
/ 19 февраля 2019

У меня более 365 столбцов в dataGridView.И я установил их ширину, значение HeaderCell, режим ReadOnly, текст заголовка.Кроме того, у меня есть метод ColumnAdded для установки значения FillWeight равным 10.

Установка этих значений делает мое приложение слишком медленным.Столбцы dataGridView занимают почти 2 минуты.

Есть ли способ решить эту проблему?

Я попытался установить каждый столбец в Form1.cs [Design], и это ускорило работу программы.Но я не мог найти способ сделать это программно.

for (int j = 0; j < year; j++)
{
    for (int i = 1; i <= 365; i++)
    {
        dataGridView1.Columns[365 * j + i].Width = 45;
        dataGridView1.Columns[365 * j + i].HeaderCell.Value = i.ToString();
        dataGridView1.Columns[365 * j + i].ReadOnly = true;
        dataGridView1.Columns[355 * j + i].HeaderText = new DateTime().AddDays(Double.Parse(i.ToString())).ToString("MM/dd");
    }
}

dataGridView1.Columns[0].Frozen = true;
dataGridView1.Columns[0].Width = 55;

Я ожидаю, что эта программа будет завершена менее чем за одну минуту.

1 Ответ

0 голосов
/ 19 февраля 2019

Надеюсь, это поможет, в окне свойств DataGridView у вас есть опция AutoSizeColumnsMode, обычно я устанавливаю ее на «AllCells».Если после этого вам по какой-то причине необходимо сделать что-то вроде:

dgridSystem.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;

Rows would be similar


dgridSystem.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
...