我有一个绑定的datagridview,我希望通过单击一个按钮删除所有行(不是从数据库只是从datagridview添加新行),我尝试了两个不同的代码,但它只删除了一半的行,例如,如果我有10只删除5。 这是我尝试的第一个代码:
for (int i = 0; i < dataGridView2.Rows.Count - 1 ; i++)
{
dataGridView2.Rows.RemoveAt(i);
}
这是第二个:
foreach(DataGridViewRow r in dataGridView2.Rows)
{
if (!r.IsNewRow)
{
dataGridView2.Rows.Remove(r);
}
}
任何人都可以解决这个问题吗?
提前致谢..
答案 0 :(得分:1)
使用 RemoveAt 从集合中删除项目时,后续项目的索引会下降一个,这就是为什么要跳过for int 循环。所以你不应该增加i,或者你应该向后浏览列表。
不递增:
while (dataGridView2.Rows.Count > 0)
{
dataGridView2.Rows.RemoveAt(0);
}
倒退:
for (int i = dataGridView2.Rows.Count - 1; i >= 0; --i)
{
dataGridView2.Rows.RemoveAt(i);
}
答案 1 :(得分:1)
dataGridView2.DataSource = null;
答案 2 :(得分:0)
你可以做到:
dataGridView2.Items.Clear();