我们有一个包含2048列的DataGridView。我们必须为用户提供一种增加和减少DataGridView中所有列宽度的方法。
目前,我们在按钮点击处理程序中执行以下操作:
for (int i = 0; i < dgv.Columns.Count; i++)
{
dgv.Columns[i].Width += 5;
}
但这需要一段时间! (约2秒钟更具体)。 (注意:我们将ColumnHeadersHeightSizeMode属性设置为DataGridViewColumnHeadersHeightSizeMode.DisableResizing以获得一些性能,但这并没有削减它)
是否有更快的方法来实现列调整大小?
答案 0 :(得分:1)
您可以尝试将单独的事件附加到每个列的按钮单击,如下所示:
for (int i = 0; i < 500; i++)
{
DataGridViewTextBoxColumn c = new DataGridViewTextBoxColumn();
dataGridView1.Columns.Add(c);
button1.Click += (o, e) => {
c.Width = 10;
};
}
我试着这样做,看起来很有效。我不确定是否有任何副作用,是否有更好的方法,甚至是否适用于一个非平凡的例子 - 我的所有列都是空的并且没有绑定。