根据单元格内容删除DataGridViewRow
本文关键字:删除 DataGridViewRow 单元格 | 更新日期: 2023-09-27 17:59:41
在过去的一个小时里,这一直让我头疼。我想根据特定单元格是否与输入数据匹配来删除datagridView行。并将它下面的所有其他行上移(我不知道这可能会自动完成,我只是不想要任何空白行)。
到目前为止,这就是我所拥有的,但我在"dataGridView1.SelectedRows"上出现了"对象引用未设置为对象实例"错误:
foreach(DataGridViewRow row in dataGridView1.SelectedRows)
{
if (row.Cells[0].ToString() == "test")
{
dataGridView1.Rows.Remove(row);
}
}
谢谢你的帮助!
尝试这个
foreach (DataGridViewRow item in dataGridView1.SelectedRows)
{
dataGridView1.Rows.RemoveAt(item.Index);
}
一个好的扩展方法怎么样?
dataGridView1.TrimByCellValue( "targetvalue" );
将代码复制到DataGridViewExtension.cs
using System.Windows.Forms;
public static class DataGridViewExtensions
{
public static void TrimByCellValue(this DataGridView grid, string deleteme)
{
System.Diagnostics.Trace.WriteLine("DataGridViewExtensions->Trim()");
foreach (DataGridViewRow _row in grid.Rows)
{
foreach (DataGridViewCell _cell in _row.Cells)
{
if ((_cell.Value != null) && (!string.IsNullOrEmpty(_cell.Value.ToString())))
{
if ( _cell.Value.ToString().CompareTo(deleteme) == 0 )
grid.Rows.Remove(_row);
}
}
}
}
}