This is by design. The currentcell will not change when you click a disabled cell.
So, if you do not want anything to happen when you click a cell in the last row or last column, try adding this code at the top of you CellClick event handler.
if((e.RowIndex == this.gridCtl.RowCount && e.ColIndex > 0)
|| (e.ColIndex == this.gridCtl.ColCount && e.RowIndex > 0))
{
return;
}
Or, if you want to process a range of the clicked cell in the case when you click on the last row/col, then define the rangeList by creating a new GridRangeInfoList and adding this GridRangeInfo.Cell(e.RowIndex, e.ColIndex) to it instead of calling GetSelectedRanges to define it.