DataGridView上是否有一个事件在删除多行时触发?

时间:2015-09-16 08:43:59

标签: .net datagridview

我的应用程序中有一个DataGridView,允许用户选择多行。用户也可以按Del删除它们。现在,DataGridView表示数据库中的条目,我想在实际删除行之前显示确认对话框。

问题是:我只发现了一个UserDeletingRow事件,该事件在每个要删除的单独行上触发,因此当用户选择100行时,我会收到100个事件。然后显示确认将意味着用户必须确认100次单个删除。

我现在唯一能想到的是阻止UserDeletingRow事件中的e.Cancel = true事件被删除,并设置一个单独的事件,当用户按下Del键时触发弄明白当时选择的是什么。

在搜索此问题时,我是否没有点击正确的关键字,或者在删除多行时是否真的没有.net中的事件?

1 个答案:

答案 0 :(得分:2)

您可以拦截按Del键,并自行处理。设置DataGridView时,需要为按键分配事件处理程序:

grid.KeyDown += new Forms.KeyEventHandler(grid_KeyDown);

处理程序可以得到用户的确认:

private void grid_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode != Keys.Delete)
        return;

    e.Handled = true; // Very important to prevent the Del key being handled elsewhere!

    // Ask user to confirm here; return if they back down...

    DeleteSelectedRecords(); // this is your own method
}