我在dataGridView中有超过365列。我设置了它们的宽度,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;
我希望此程序能在不到一分钟的时间内完成。
答案 0 :(得分:0)
希望这会有所帮助,在DataGridView属性窗口中,有一个名为AutoSizeColumnsMode的选项,我通常将其设置为“ AllCells”。如果以后由于某种原因需要这样做,可以执行以下操作:
dgridSystem.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
Rows would be similar
dgridSystem.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;