删除datagridview中的所有数据
问题描述:
为什么不能正常工作?删除datagridview中的所有数据
//::::::::::::::::::::::::::::::::::::
private void uxClearButton_Click(object sender, EventArgs e)
{
clearDGV();
}
void clearDGV()
{
// remove selected rows
foreach (DataGridViewRow row in uxDGV.Rows)
{
uxDGV.Rows.Remove(row);
}
}
//:::::::::::::::::::::::::::::::::::
DGV没有被绑定,用户已经输入了信息。
错误我得到的是InvalidOperationException was unhandled Uncommitted new row cannot be deleted.
编辑
确定 - 感谢史蒂夫等鼓励我找到了答案我自己!
uxChargeBackDataGridView.Rows.Clear();
答
幸运的是DataGridView
提供为我们做到这一点的方法,只需调用Clear
像这样:
uxDGV.Rows.Clear();
原因你让你的错误是因为你试图删除未提交的新行。 (一旦知道问题,错误实际上很好,并且信息丰富!)
新行由DataGridView
行上的布尔型IsNewRow
属性标识。
在您的代码中,您还有在修改集合时迭代集合的问题。所以你需要做一些像下面这样的事情,在这里我们迭代前进,但每次都在零时删除:
int rowCount = dataGridView1.Rows.Count;
for (int n = 0; n < rowCount; n++)
{
if (dataGridView1.Rows[0].IsNewRow == false)
dataGridView1.Rows.RemoveAt(0);
}
为什么不清除所有的行? – roymustang86 2012-07-19 13:17:35
可能的重复[如何清除DataGridView中的行与C#?](http://stackoverflow.com/questions/6184402/how-can-i-clear-rows-in-datagridview-with-c) – 2012-07-19 13:18:30
您可以使用foreach循环并在循环中循环从同一集合中删除项目 – Steve 2012-07-19 13:19:45