I also had the same problem and unfortunately did not find a suitable component. I was also inspired by Google.
Thus, it became easier for me to "simulate a component" using the edit box and the grid below it. When the user enters something into the edit box, the query is updated and the corresponding result is displayed in the grid. I have many columns in the grid, the query results try to combine all the fields (therefore, if I type "po", the query will return all records where any field looks like "po%"). I also added a delay of 500 ms after the user enters the code to avoid running too many unnecessary requests (another example would be to kill the stream when the user throws a new key if the request is executed on the stream).
Thus, I got the required functionality, even if without highlighting the search text, in any case, my users are delighted with this.
In every place I use this "component". I am attaching a request at runtime so that it can be used in many different forms.
I was somehow inspired by the skype interface: when you show the lsit of contacts, you can enter something and the contacts will be filtered out accordingly (skype uses editbox + grid / listbox).
source share