我想在用户按键盘上的del按钮时从我的datagridview1中删除当前选择的行。
这是我到目前为止的代码
// Remove selected row
private void DeleteRow()
{
try
{
dataGridView1.Rows.RemoveAt(dataGridView1.CurrentRow.Index);
MessageBox.Show("Row removed");
}
catch (Exception ex)
{
MessageBox.Show("row remove EX");
return;
}
}
// Event when user presses DEL button on keyboard
private void dataGridView1_RowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e)
{
DeleteRow();
}
应用程序删除了行,但是DeleteRow()
功能从未执行,因为我从未看到Row removed
消息。我想念什么吗?
编辑:更新的代码
从您发布的代码可见的内容中,您可以从rowsremaved Event Handler中调用eleterow((。
但是,直到删除一排才执行。如果要执行它,它将直接删除另一行 - 如果有一个或抛出异常。
请尝试:
private void dataGridView1_RowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e)
{
MessageBox.Show("row removed").
}
尝试通过在eleterow((中设置调试断点来理解您已经编码的内容。当前,您的应用程序就像eleterow-> rowremeveneventhandler-> eleterow
因此,您的代码删除行执行两次。