更改 DataGridView 中所有列的宽度
我们有一个包含 2048 列的 DataGridView。我们必须为用户提供一种方法来增加和减少 DataGridView 中所有列的宽度。
目前,我们在按钮单击处理程序中执行以下操作:
for (int i = 0; i < dgv.Columns.Count; i++)
{
dgv.Columns[i].Width += 5;
}
但这需要一段时间! (更具体地说,大约 2 秒)。 (注意:我们将 ColumnHeadersHeightSizeMode 属性设置为 DataGridViewColumnHeadersHeightSizeMode.DisableResizing 以获得一些性能,但这并不能降低性能)
是否有更快的方法来实现列大小调整?
We have a DataGridView which has 2048 columns. We must provide a way for the user to increase and decrease the width of all columns in the DataGridView.
Currently, we do the following in a button click handler:
for (int i = 0; i < dgv.Columns.Count; i++)
{
dgv.Columns[i].Width += 5;
}
But that takes a while! (around 2 seconds to be more specific). (Note: We set the ColumnHeadersHeightSizeMode property to DataGridViewColumnHeadersHeightSizeMode.DisableResizing to gain some performance, but that doesn't cut it)
Is there a faster way to achieve the column resizing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以尝试为每列的按钮单击附加一个单独的事件,如下所示:
我凭直觉尝试了此操作,看起来似乎可行。我不确定是否有任何副作用,是否有更好的方法,甚至不确定它是否适用于一个不平凡的示例 - 我的所有列都是空的且未绑定。
You could try attaching a separate event to the button click for each column, something like this:
I tried this on a hunch and it looks like it works. I"m not sure though whether there are any side effects, whether or not there is a better method or even whether it would work for a non-trivial example - all my columns are empty and unbound.