When you set style.Enabled = flase, you are indicating you do not want that cell to ever become the current cell. If all such cells are like this, then there is a problem and the grid cannot move teh current position. That is why teh grid is always trying to display the triangle row after you click another row.
I think you can get the behavior you want by not handling QueryCellInfo, but instead handling CurrentCellActivating and setting e.ColIndex = 0. Here is your sample back with this change.
forumscroll_4406.zip