<b> * converts a mouse click in the shape to activate the underlying grid cell local lnRow, lnCol, lnWidth lnRow = int( 1 + ( nYcoord - this.Top ) / thisform.grdTheGrid.RowHeight ) lnWidth = 0 nXCoord = nXCoord - this.Left for lnCol = thisform.grdTheGrid.LeftColumn to thisform.grdTheGrid.ColumnCount lnWidth = lnWidth + thisform.grdTheGrid.Columns[lnCol].Width + thisform.grdTheGrid.GridLineWidth if ( lnWidth > nXCoord ) exit endif endfor lnCol = lnCol - thisform.grdTheGrid.LeftColumn + 1 thisform.grdTheGrid.ActivateCell( lnRow, lnCol ) </b>It works well in a read only grid because it's not so important to get the text cursor where a field is clicked.