gpt4 book ai didi

c# - 快速设置 DataGridView 行高

转载 作者:太空狗 更新时间:2023-10-30 01:23:31 26 4
gpt4 key购买 nike

我有一个虚拟数据 GridView ,我想为其设置不同的行高。我希望找到一种方法来一次设置所有行高,而不是一次遍历每个行高。

这是我尝试设置高度的方法,但性能很糟糕~每 1,000 行 1 秒。对我来说,平均行数约为 20k-30k 行,所以这是 Not Acceptable 。

public void PopulateData()
{
this.SuspendLayout();

this.RowCount = Data.RowCount;

for (int i = 0; i < Data.RowCount; i++)
{
this.Rows[i].Height = Data.RowHeights[i];
}

this.ResumeLayout();
}

我也确保先关闭自动调整大小,但性能仍然很差。

this.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None;
this.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;

有什么方法可以传入行高数组或防止在调整行大小时调用 OnRowHeightChanged 吗?

最佳答案

显然,如果您独立于 datagridview 创建行,则影响性能的功能将不适用。

诀窍是创建一个行数组,调整它们的大小,然后将行的范围添加到 datagridview:

public void PopulateData()
{
this.SuspendLayout();

DataGridViewRow[] rows = new DataGridViewRow[Data.RowCount];
for (int i = 0; i < rows.Length; i++)
{
DataGridViewRow row = new DataGridViewRow();
row.Height = Data.RowHeights[i];
rows[i] = row;
}
this.Rows.AddRange(rows);

this.ResumeLayout();
}

对于 15,000 行,这只需要 150 毫秒,而如果不创建单独的数组则需要 15 秒,快 100 倍!

关于c# - 快速设置 DataGridView 行高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11054683/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com