DataGridView UserDeletingRow事件 提示控制

   DataGridView的行数据在用键盘Delete删除时,会触发这个事件UserDeletingRow,由于项目具体要求要实现多选的删除,这样如果对于删除数据进行提示会出现多次,显然不符合要求;

我想到两种方法:

1.KeyPree事件,捕获Delete键,处理;

2.用DataGridView的UserDeletingRow事件,但是这样会出现提示次数等于删除的数据条数,不符合要求;经过探索找到一个方法,先贴代码:


//删除事件
       private void dgvBreakLayer_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
       {
           DataGridViewSelectedRowCollection dr = dgvBreakLayer.SelectedRows;
           if (dr == null)
           {
               e.Cancel = true;
           }
           bool flag = MessageBox.Show("确认删除选中数据吗?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes;
           if (flag)
           {
               e.Cancel = true;
               for (int i = 0; i < dr.Count; i++)
               {
                   dgvBreakLayer.Rows.RemoveAt(dr[i].Index);
               }
               dgvBreakLayer.ClearSelection();
           }
           else
           {
               e.Cancel = true;
           }
       }



思路:在第一次触发事件时,把选中的数据删除掉,关键是将该事件的后续处理中断,即:e.Cancel赋值为True



你可能感兴趣的:(提示控制,UserDeletingRow)