1

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

当用户使用 DeletingRow 事件仅删除一行时,我可以删除行,如下所示:

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

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

4

2 回答 2

2

所有选定的行都将可用,dataGridView1.SelectedRows
因此您可以执行以下操作:

    void dataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
    {
        foreach (DataGridViewRow row in this.dataGridView1.SelectedRows)
        {
            this.HandleRowDeletion(row);
        }
    }
于 2013-08-11T06:00:41.127 回答
1

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

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

于 2013-08-11T05:35:49.710 回答