DataGridView选中最后一行空白行进行当前行删除操作时,会删除不对应的数据行。

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;


版权声明:本文为qq_21121397原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。