C# 从DataGridView行计数中删除最后一行
我在C#中创建了一个C# 从DataGridView行计数中删除最后一行,c#,visual-studio,datagridview,foreach,rowcount,C#,Visual Studio,Datagridview,Foreach,Rowcount,我在C#中创建了一个foreach循环。我试图在所有行中循环,但最后一行除外,它是自动添加的。因为单元格不包含任何值,所以我得到一个NullException 重要提示:将AllowUsersToAddRows设置为false不是选项,因为此函数是必需的 foreach (DataGridViewRow row in VRFileDataGrid.Rows) { Console.WriteLine(row.Cells[0].Value.ToString()); }
foreach循环。我试图在所有行中循环,但最后一行除外,它是自动添加的。因为单元格不包含任何值,所以我得到一个NullException
重要提示:将AllowUsersToAddRows设置为false不是选项,因为此函数是必需的
foreach (DataGridViewRow row in VRFileDataGrid.Rows)
{
Console.WriteLine(row.Cells[0].Value.ToString());
}
我没有试图修复metNullReferenceException
,我想知道如何通过所有行执行循环,最后自动添加的行除外。我通过设置VRFileDataGrid.AllowUserToAddress=false来修复它循环前的代码>和设置VRFileDataGrid.allowUserToAddress=true代码>在循环之后
可能不是最好的解决方案,但我工作得很好。考虑使用for
循环,而不是foreach
VRFileDataGrid.Rows.Count-1
表示除最后一行以外的所有行
for(int r = 0; r < VRFileDataGrid.Rows.Count - 1; r++)
{
DataGridViewRow row = VRFileDataGrid.Rows[r];
Console.WriteLine(row.Cells[0].Value.ToString());
}
for(int r=0;r
自动添加的最后一行将其IsNewRow
属性设置为true
。您可以跳过它:
foreach (DataGridViewRow row in VRFileDataGrid.Rows)
{
if (row.IsNewRow)
continue;
Console.WriteLine(row.Cells[0].Value.ToString());
}
您还可以对可枚举项执行某些操作,例如。这仍然可以让你使用foreach。@molnargab,我认为这样的解决方案在这里太过分了;行计数已知,问题是排除最后一行。但是是的,它也应该解决这个问题