Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有办法加快DataGridView的删除速度?_C#_Datagridview_Row - Fatal编程技术网

C# 有没有办法加快DataGridView的删除速度?

C# 有没有办法加快DataGridView的删除速度?,c#,datagridview,row,C#,Datagridview,Row,我正在处理大量数据集,并将它们存储在DataGridView中,以便用户可以在应用程序中看到这些数据,并在将其保存到数据库之前对其进行操作。在用户点击保存按钮之前,不会将任何内容保存到数据库中 用户可以通过按delete键删除多行,如果只有几行,则效果很好。如果他们想删除几千个呢?删除这么多行需要很长时间 这就是我当前删除它们的方式: foreach (DataGridViewRow row in dgv.SelectedRows) dgv.Rows.Remove(row);

我正在处理大量数据集,并将它们存储在DataGridView中,以便用户可以在应用程序中看到这些数据,并在将其保存到数据库之前对其进行操作。在用户点击保存按钮之前,不会将任何内容保存到数据库中

用户可以通过按delete键删除多行,如果只有几行,则效果很好。如果他们想删除几千个呢?删除这么多行需要很长时间

这就是我当前删除它们的方式:

  foreach (DataGridViewRow row in dgv.SelectedRows)
       dgv.Rows.Remove(row);

有没有什么方法可以让我一下子把所有的行都去掉?基本上类似于Clear函数,但我给它一个要删除的行列表

尝试使用SuspendLayout和ResumeLayout禁用GUI更新:

dgv.SuspendLayout();
foreach (DataGridViewRow row in dgv.SelectedRows)
{
    dgv.Rows.Remove(row);
}
dgv.ResumeLayout();

我正在处理大量数据
——您可能希望看到这些数据并没有真正改变任何东西。我真的在寻找如何一次删除多行。谢谢你的建议!