>*** handle the key...IOW, find the closest match in the list >IF This.SelStart > 0 > IF ( LASTKEY() > 31 AND LASTKEY() < 128 ) OR ( LASTKEY() = 7 ) > This.HandleKey() > ENDIF >ENDIF >>
>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 >