我有一个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)
问题是它将选定的行定义为一次点击的所有行.我想删除所有突出显示的行.换句话说,如果未突出显示某行,则不会选中该行.
这应该工作
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)