数据网格视图中删除行的列表

本文关键字:删除行 列表 视图 数据网 网格 数据 | 更新日期: 2023-09-27 18:27:23

我得到了一个DataGridView,它只允许用户删除行(不需要在DataGridView上直接编辑或添加)。每当用户删除DataGridView上的行时,我都会更新我的数据库信息(DB和gridview之间没有绑定)。

当用户使用DeletingRow事件只删除一行时,删除行没有问题,如下所示:

private void dataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
{
    DataGridViewRow row = e.Row;     //only single row
}

然而,当用户选择多个行并将其删除时,我无法捕获所有列的列表。以上事件仅对第一行调用一次。为了处理这种情况,我确实设置了dataGridView1.MultiSelect = false;,但这是一种变通方法
那么,如何获得用户当前正在删除的所有选定行的列表?

数据网格视图中删除行的列表

所有选定的行都将在dataGridView1.SelectedRows
这样你就可以做一些类似的事情:

    void dataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
    {
        foreach (DataGridViewRow row in this.dataGridView1.SelectedRows)
        {
            this.HandleRowDeletion(row);
        }
    }

使用dataGridView1.SelectedRows获取包含所有选定行的集合(DataGridViewRowCollection类型)。同样适用于列(dataGridView1.SelectedColumns)和单元格(dataGridView1.SelectedCells)。

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.selectedrows.aspx