如何降低DataGridView设置速度

How to reduce DataGridView setting speed

我在 dataGridView 中有超过 365 列。我设置了它们的每一个宽度,HeaderCell Value,ReadOnly mode,Header Text。另外,我有 ColumnAdded 方法将 FillWeight 设置为 10。

设置这些值会使我的应用程序变慢。 dataGridView 列需要将近 2 分钟。

有什么办法可以解决这个问题吗?

我尝试在 Form1.cs[设计] 中设置每一列,这让程序运行得更快。但我找不到以编程方式执行此操作的方法。

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;

我希望这个程序能在一分钟内完成。

希望这对您有所帮助,在 DataGridView 属性 window 中,您有一个名为 AutoSizeColumnsMode 的选项,我通常将其设置为 "AllCells"。如果您之后出于某种原因需要这样做,您可以执行以下操作:

dgridSystem.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;

Rows would be similar


dgridSystem.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;