0

バインドされていないdatagridviewビューがあります。最初のロードは常に非常に高速に実行されますが、2番目のロードは約20倍遅くなります。

私は毎回次のことを行います。このコードを削除すると、2回目以降の読み込みが速くなります(残念ながら、このカラーロジックを維持する必要があります)。

            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;
                    }
                }
            }
4

1 に答える 1

0

2回目のロードの前に、datagridviewを破棄して再構築します。これは、最初のロードと同じくらい高速です。

于 2012-07-22T22:07:13.670 に答える