过去一小时,这让我很头疼。我想根据特定单元格是否与输入数据匹配来删除datagridView行。并将其下方的所有其他行向上移动(认为这可能会自动完成,我不知道,我只是不想要任何空行)。
这是我到目前为止所得到的“对象引用未设置为对象的实例”错误发生在“dataGridView1.SelectedRows”上:
foreach(DataGridViewRow row in dataGridView1.SelectedRows)
{
if (row.Cells[0].ToString() == "test")
{
dataGridView1.Rows.Remove(row);
}
}
感谢您的帮助!
答案 0 :(得分:1)
试试这个
foreach (DataGridViewRow item in dataGridView1.SelectedRows)
{
dataGridView1.Rows.RemoveAt(item.Index);
}
答案 1 :(得分:0)
一个不错的扩展方法怎么样?
dataGridView1.TrimByCellValue( "targetvalue" );
将代码复制到DataGridViewExtensions.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);
}
}
}
}
}