我有一个DataGridView,它允许用户删除行(没有直接编辑或添加DataGridView)。每当用户删除DataGridView上的行时,我都会更新我的数据库信息(DB和gridview之间没有绑定)。
当用户使用DeletingRow事件删除一行时,删除行没有问题,如下所示:
private void dataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
{
DataGridViewRow row = e.Row; //only single row
}
但是当用户选择多个行并删除它们时,我无法捕获所有行的列表。
以上事件仅针对第一行调用一次。为了处理这种情况,我确实设置了dataGridView1.MultiSelect = false;
但是这是一种解决方法!
那么如何才能获得用户正在删除的所有选定行的列表?
答案 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