DataGridView“第二次”加载要慢得多

时间:2012-07-21 06:32:03

标签: c# winforms

我有一个未绑定的datagridview视图。第一个负载总是运行得非常快,但第二个负载大约慢20倍。

我每次都执行以下操作,如果删除此代码,则第二次和后续加载速度很快(不幸的是我必须保留此颜色逻辑):

            for (int ri = 0; ri < pdgv.Rows.Count; ri++)
            {
                for (int ci = 0; ci < pdgv.Columns.Count; ci++)
                {
                    if (pdgv.Columns[ci].Frozen)
                    {
                        pdgv[ci, ri].Style.BackColor = v.Frozen_BackColor;
                        pdgv[ci, ri].Style.ForeColor = v.Frozen_ForeColor;
                        pdgv[ci, ri].Style.Font = v.Frozen_Font;
                        if (pdgv[ci, ri].OwningColumn.Name.StartsWith("yn_") &&
                            pdgv[ci, ri].Value != null &&
                            pdgv[ci, ri].Value.ToString() == "1")
                        {
                            pdgv[ci, ri].Style.BackColor = Color.Red;
                            pdgv[ci, ri].Style.ForeColor = Color.White;
                        }
                    }
                    if (pdgv.Columns[ci].ReadOnly)
                    {
                        pdgv[ci, ri].Style.BackColor = v.ReadOnly_BackColor;
                        pdgv[ci, ri].Style.ForeColor = v.ReadOnly_ForeColor;
                        pdgv[ci, ri].Style.Font = v.ReadOnly_Font;
                    }
                }
            }

1 个答案:

答案 0 :(得分:0)

我在第二次加载之前处理并重建datagridview,它和第一次加载一样快。