【发布时间】:2012-02-13 12:13:02
【问题描述】:
我在 C# 中制作了一个 DataGradView,它允许我折叠和展开行。 看起来像这样:
在启动时,我想折叠所有具有多个条目的客户。就像图片中显示的那样。如果customers is < 10.000 的总数效果很好
如果customer is > 10.000的总数需要几分钟去。
折叠所有客户的代码:
int number = 0;
int oldnumber = 0;
int parent = 0;
foreach (CustomDataGridViewRow row in dataGridView1.Rows)
{
try
{
number = int.Parse(row.Cells[1].Value.ToString());
if (number != oldnumber && int.Parse(dataGridView1.Rows[row.Index + 1].Cells[1].Value.ToString()) == number)
{
row.Is_expander = true;
parent = row.Index;
}
if (number == oldnumber)
{
row.hide(parent);
}
oldnumber = number;
}
catch { }
}
foreach 必须折叠的行我调用row.hide(parent),它将可见性设置为 false 并保存父索引。
为每个父行绘制一个图标
你能猜到为什么隐藏所有这些行需要这么长时间吗? 也许在每个隐藏的行屏幕再次绘制之后? 也许我在循环中做不必要或高性能的事情? 我不知道
【问题讨论】:
标签: c# performance datagridview