DataGridView使用AllowUserToAddRow==True 时,会默认在数据行后面添加一行空白行。
通过按钮去删除CurrentRow,如果鼠标选中了最后的这个空白行,这时候CurrentRow.Index==0,而不会是1 ,从用户角度来看,就是我选了空白行,结果把上面那行给删除了。
解决方法:
利用SelectedCells,鼠标点击空白行的时候获取到选中单元格的行号,和CurrentRow.Index进行比较。
如果不一样,说明选中的是最后一行空白行,不作删除
if (dgv_标准品.CurrentRow == null) return;
if (dgv_标准品.SelectedCells == null) return;
int row = dgv_标准品.SelectedCells[0].RowIndex;
if (dgv_标准品.CurrentRow.Index != row) return;