【发布时间】:2014-02-06 05:58:18
【问题描述】:
我需要删除 datagridview 中的前 1000 行。
delegate void DeleteRowsCallback();
private static void Delete1KRows()
{
JSONTest form = (JSONTest)Application.OpenForms["JSONTest"];
if (form.GridTestReport.InvokeRequired)
{
DeleteRowsCallback d = new DeleteRowsCallback(Delete1KRows);
form.GridTestReport.Invoke(d);
}
else
{
for (int i = 0; i < 1000; i++ )
{
form.GridTestReport.Rows.RemoveAt(0);
}
}
}
这会删除行但需要很多时间。当删除正在进行时,UI 也没有响应。删除多行的更好方法。
谢谢
【问题讨论】:
-
您是否在
Virtual模式下使用DataGridView?您是如何将数据绑定到网格的? -
你的 gridview 有数据源吗?你为什么不从它的数据源中删除你想要的所有记录,然后你可以调用 gridview.databind() 来刷新用户界面,这样你就不需要手动删除 gridview 行了。
-
我没有绑定gridview。我正在调用 form.GridTestReport.Rows.Add()。我没有使用虚拟模式。
标签: c# .net winforms datagridview