It might look like an extra column, but in fact it's not a column at all. It's just the space left over at the right-hand side of the grid.
Put another way, if the grid is 100 pixels wide, and it contains two columns of data, each 40 pixels wide, the so-called "third column" is the unused 20 pixels.
If you don't want it to show, you can adjust the widths of the columns so that they exactly add up to the width of the grid. Unfortunately, it's a little more complicated than that, because you also need to take account of the grid border, vertical scroll bar, and even the lines between the columns. But you can usually get it right with a bit of trial and error.
As for the extra rows, those are harder to explain. Basically, they represent the empty space at the bottom of the grid, just as the column represents the empty space at its right. The only reason they are necessary is that it's possible to scroll the grid so that the bottom row of data appears at the top of the visible grid, and you therefore need something underneath that.
But that's not really a good explanation. There's no real reason to allow the grid to be scrolled in that way. It would be just as valid to make it so that the last real row is never above the last physical row, in which case the empty space wouldn't be necessary. Many third-party grid controls work that way.
It might be possible to avoid the empty rows by writing code in the Scrolled event such that, whenever the user scrolls the grid in such a way as to reveal the empty rows, the grid would automatically scroll itself so that the last row is at the bottom. But I suspect that would look ridiculous, and would confuse the users no end.
Personally, I would just leave things as they are, and live with it.
Mike
__________________________________
Mike Lewis (Edinburgh, Scotland)
Visual FoxPro articles, tips and downloads