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 回答