LOCAL lcSofar, lnSelStart, lnSelLength, lnRow WITH This *** Handle backspace key IF LASTKEY() = 127 .SelStart = .SelStart - 1 ENDIF *** Get the value typed in so far lnSelStart = .SelStart lcSofar = LEFT( .DisplayValue, lnSelStart ) *** Find a match in column #1 of the combo's internal list FOR lnRow = 1 TO .ListCount IF UPPER( .List[ lnRow, 1 ] ) = UPPER( lcSoFar ) .ListIndex = lnRow EXIT ENDIF ENDFOR *** Highlight the portion of the value after the insertion point .SelStart = lnSelStart lnSelLength = LEN( ALLTRIM( .DisplayValue ) ) - lnSelStart IF lnSelLength > 0 .SelLength = lnSelLength ENDIF ENDWITH