从DataGridView C#中删除具有特定值的行

时间:2014-07-10 11:03:49

标签: c# winforms datagridview

我有一个WinForm DataGridView,我需要删除列中具有特定值的行

enter image description here

在这种情况下,我使用文本字段键入代码,然后单击“删除”列值下 ITM-000001 的所有行。我不知道从哪里开始。

private void deleteClick(object sender, EventArgs e)
{      
    String code = txtCode.Text;
    // CODE HERE       
}

2 个答案:

答案 0 :(得分:2)

自从我使用Windows Forms做了很多事情以来已经有很长一段时间了(哦,好日子),请原谅我,如果这有点偏,但是你应该能够做到这一点类似......

for(int v = 0; v < dataGrid1.Rows.Count; v++)
{
    if(string.Equals(dataGrid1[0, v].Value as string, "ITM-000001"))
    {
        dataGrid1.Rows.RemoveAt(v);
        v--; // this just got messy. But you see my point.
    }
}

答案 1 :(得分:2)

不一定比马修的解决方案更好或更简单;我有时会发现一种不同的方法:

    List<DataGridViewRow> RowsToDelete = new List<DataGridViewRow>();
    foreach (DataGridViewRow row in dataGridView1.Rows)
        if ( row.Cells[0].Value != null && 
             row.Cells[0].Value.ToString() == "TTTT") RowsToDelete.Add(row);
    foreach (DataGridViewRow row in RowsToDelete) dataGridView1.Rows.Remove(row);
    RowsToDelete.Clear();

这样你就可以在列表之后使用列表作为缓冲区,或者在实际删除之前给出点击次数。

我也喜欢他对string.Equals的使用,并且为了好玩而在这里采取不同的做法..

相关问题