删除dataGridView中的选定行

Luk*_*cky 2 c# datagridview

我有一个dataGridView,我填充了一个文件列表.我希望能够通过选择条目(通过单击它)然后按删除键来删除其中一些条目.这是我到目前为止的代码:

private void DataGrid_KeyDown(object sender, KeyEventArgs e)
{
     if (e.KeyCode == Keys.Delete)
     {
           foreach (DataGridViewRow r in DataGrid.SelectedRows)
           {
                if (!r.IsNewRow)
                {
                    DataGrid.Rows.RemoveAt(r.Index);                        
                }
           }
     }
}
Run Code Online (Sandbox Code Playgroud)

问题是它将选定的行定义为一次点击的所有行.我想删除所有突出显示的行.换句话说,如果未突出显示某行,则不会选中该行.

Ben*_*min 5

这应该工作

 private void DataGrid_KeyDown(object sender, KeyEventArgs e)
 {
   if (e.KeyCode == Keys.Delete)
   {
    Int32 selectedRowCount =  DataGrid.Rows.GetRowCount(DataGridViewElementStates.Selected);
    if (selectedRowCount > 0)
     {
        for (int i = 0; i < selectedRowCount; i++)
        {
            DataGrid.Rows.RemoveAt(DataGrid.SelectedRows[0].Index);  
        }
     }
   }
}
Run Code Online (Sandbox Code Playgroud)