【发布时间】:2018-02-03 19:08:25
【问题描述】:
我有 datagridview 和标题复选框来检查复选框列中行中的所有复选框(所有复选框的列索引 0)。 我在删除按钮事件中有以下代码:
for (int i = 0; i < datagridview.Rows.Count; i++) {
if (Convert.ToBoolean(datagridview.Rows[i].Cells[0].Value) == true) {
datagridview.Rows.RemoveAt(i);
}
}
datagridview.rows.count 随着行的删除而不断减少,但循环中的 I 不断增加。因此,它不会删除所有选中的行,而是仅删除其中一些。当我在代码中增加时,它不会删除行索引为 0、1、2 等的行索引以及 datagridview 中的新数据。
【问题讨论】:
-
因为当你 removeat(i) 时,它在第一次迭代时为 0,它下面的行向上移动到索引 0,但 i 现在为 1。反向删除它们。
标签: c# button checkbox datagridview delete-row