Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.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#_Winforms_Datagridview - Fatal编程技术网

C# 从datagridview中删除所有数据

C# 从datagridview中删除所有数据,c#,winforms,datagridview,C#,Winforms,Datagridview,为什么这样不行 //:::::::::::::::::::::::::::::::::::: private void uxClearButton_Click(object sender, EventArgs e) { clearDGV(); } void clearDGV() { // remove selected rows foreach (DataGridViewRow row in uxD

为什么这样不行

    //::::::::::::::::::::::::::::::::::::
    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,未提交的新行无法删除。

编辑

好的-感谢Steve等人鼓励我自己找到答案

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);
}
int rowCount=dataGridView1.Rows.Count;
对于(int n=0;n
无法使用foreach在集合上循环的可能重复项,并在循环内从同一集合中删除项尝试向后迭代这些项,并在执行过程中删除每个项。对于(int x=uxDGV.Rows.Count;x>0;x--)@SeanBright…该问题看起来与绑定的datagridview有关;我的没有数据源。@roymustang86-清除所有行是我想要的;语法是什么?