1

2048 列の DataGridView があります。ユーザーが DataGridView のすべての列の幅を増減できるようにする必要があります。

現在、ボタン クリック ハンドラで次のことを行っています。

for (int i = 0; i < dgv.Columns.Count; i++)
{
   dgv.Columns[i].Width += 5;
}

しかし、それには時間がかかります!(より具体的には約2秒)。(注: ColumnHeadersHeightSizeMode プロパティを DataGridViewColumnHeadersHeightSizeMode.DisableResizing に設定してパフォーマンスを向上させましたが、それで十分ではありません)

列のサイズ変更を実現するより速い方法はありますか?

4

1 に答える 1

1

次のように、各列のボタン クリックに個別のイベントを関連付けることができます。

for (int i = 0; i < 500; i++)
{
    DataGridViewTextBoxColumn c = new DataGridViewTextBoxColumn();
    dataGridView1.Columns.Add(c);

    button1.Click += (o, e) => {                    
        c.Width = 10;                    
    };
}

直感でこれを試してみましたが、うまくいくようです。副作用があるかどうか、より良い方法があるかどうか、またはそれが重要な例で機能するかどうかさえわかりません.私の列はすべて空でバインドされていません.

于 2011-07-06T14:11:32.447 に答える