gpt4 book ai didi

c# - 如何删除选中复选框的数据 GridView 中的行?

转载 作者:太空狗 更新时间:2023-10-29 18:04:49 26 4
gpt4 key购买 nike

我正在使用 C# .NET 2.0 Visual Studio 2005。

我遇到了奇怪的问题。

有一个简单的窗口窗体,只有一个 DataGridView,column1 是复选框 (DataGridViewCheckboxColumn)

然后如果单元格中的复选框被选中,我想删除选中的行。

听起来很简单,但它并没有以某种方式删除所有选中的行,而且我真的不明白为什么它会以这种方式表现。

例如,我有 5 行并选中了每行中的所有复选框,但它只删除了 3 行。有没有人见过这个?这是错误还是我做错了什么?

namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

//when I click the button, all checked row should be removed
private void button1_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if ((bool)row.Cells[0].Value)
{
dataGridView1.Rows.Remove(row);
}
}
}
}
}

最佳答案

它发生在删除一行时,行数也会减少,所以如果您将代码放入 for 循环并反向运行它,它会正常工作看看:

for (int i = dataGridView1.Rows.Count -1; i >= 0 ; i--)
{
if ((bool)dataGridView1.Rows[i].Cells[0].FormattedValue)
{
dataGridView1.Rows.RemoveAt(i);
}
}

关于c# - 如何删除选中复选框的数据 GridView 中的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6439667/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com