我正在使用删除行索引来删除datagridview中的一行。
但是当删除一行时,datagridview会自动附加下一行
第一次删除任何索引然后删除它,但第二次删除第1行索引行
我正在使用此代码:
for (int i = 0; i < path.Length; i++)
{
lpath.Add(path[i].ToString());
dataGridView1.Rows.RemoveAt(int.Parse(arr[i]));
}
答案 0 :(得分:1)
使用for循环
删除行后,必须减少'i'请参阅以下代码
for (int i = 0; i < path.Length; i++)
{
lpath.Add(path[i].ToString());
dataGridView1.Rows.RemoveAt(int.Parse(arr[i]));
i--; }
答案 1 :(得分:0)
在 for循环中增加 i 比减少它有点奇怪。为什么不添加项目而不是清除所有行?
for (int i = 0; i < path.Length; i++) {
lpath.Add(path[i].ToString());
}
dataGridView1.Rows.Clear();
答案 2 :(得分:0)
正如我所看到的,你第一次将索引偏离dataGridView1
。
假设你有一个包含元素{1,2,3,4,5}
的列表,如果我们现在删除索引3然后4我们最终删除3和5给我们列表{1,2,4}
但我们想删除3和4不是3和5
我认为您想要做的是获取要删除的所有索引,然后对它们进行排序并从上到下删除,而不是按顺序删除3和4,删除4和3给我们列表{ {1}}
{1,2,5}