在datagridview中删除行的列表

时间:2013-08-11 04:52:19

标签: c# events datagridview

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

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

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

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

2 个答案:

答案 0 :(得分:2)

所有选定的行都将在dataGridView1.SelectedRows上提供 所以你可以这样做:

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

答案 1 :(得分:1)

使用dataGridView1.SelectedRows获取包含所有选定行的集合(DataGridViewRowCollection类型)。列(dataGridView1.SelectedColumns)和单元格(dataGridView1.SelectedCells)也是如此。

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