[英]Deleting multiple rows in an unbound datagridview
我有一个项目,该项目从SQL数据库读取行并将其显示在datagridview中。 这部分效果很好。 我想通过删除网格中的每个未选择的行来显示这些记录的子集。 这是代码:
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (!row.Selected)
{
if (!row.IsNewRow)
{
dataGridView1.Rows.Remove(row);
//dataGridView1.Rows.Remove(dataGridView1.CurrentRow);
}
}
}
它从下至上删除所选区域,并保留上面未选择的行,或者删除所选和未选择的行。
有人能指出我正确的方向吗?
这些行随着其他行被删除而被更改,因此某些元素被错误地跳过。
您可以使用2个循环:第一个循环反转选定的项目,第二个循环删除选定的项目(这是反转之前先前未选择的项目)。
foreach (DataGridViewRow row in dataGridView1.Rows)
{
// invert row selections
if (!row.Selected)
{
if (!row.IsNewRow)
{
row.Selected = true;
}
}
else
{
row.Selected = false;
}
}
// remove selected rows
foreach (DataGridViewRow row in dataGridView1.SelectedRows)
{
dataGridView1.Rows.Remove(row);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.