我正在使用Windows窗体中的C#软件,其中我有一个datagridView,用户可以在其中删除行。
我想捕获一次删除行的事件,问题是每个删除行调用一次事件处理程序RowsRemoved。在Msdn中保留e,事件Argument包含已删除的行数但在调试时我看到该数字始终为1.
如果仅在删除所选行的最后一行并且删除了所有行的总数时才能调用此事件,我该怎么办?
非常感谢你的帮助!!!
答案 0 :(得分:1)
当删除行组时,如果行"新行",则所选行的数量为0或1。被选中:
private void dataGridView1_RowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e)
{
MessageBox.Show("Row deleted");
if ((dataGridView1.SelectedRows.Count==0)
|| ((dataGridView1.SelectedRows.Count == 1)
&&(dataGridView1.SelectedRows[0].IsNewRow)))
{
MessageBox.Show("Set of rows deleted");
}
}
答案 1 :(得分:0)
使用逻辑来检测它是否是最后一行。删除整行的行时,它甚至会删除每行?
void dgv_RowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e)
{
if (e.RowIndex == (dgv.RowCount - e.RowCount))
{
// Do stuff
}
}