我有一个WinForm DataGridView,我需要删除列中具有特定值的行
在这种情况下,我使用文本字段键入代码,然后单击“删除”列值下 ITM-000001 的所有行。我不知道从哪里开始。
private void deleteClick(object sender, EventArgs e)
{
String code = txtCode.Text;
// CODE HERE
}
答案 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
的使用,并且为了好玩而在这里采取不同的做法..