This can no doubt be done more elegantly, but here's the basic principles (apologies for any syntax issues, I'm not much of a VB guy):
In the KeyUp event:
- Make sure the key in't a navigation key:
if e.KeyCode <> Keys.Back [...]
- Search the items list for the text typed:
idx = myCombo.FindString(myCombo.Text)
- Take the combo's found item:
s = myCombo.GetItemText(idx)
- insert it into the .Text property:
myCombo.Text = s
Note that this would overtype everything the user entered (destroying case). You could improve this by appending the 'missing' part instead:
stringToAppend = s.SubString(myCombo.Text.Length)
myCombo.Text = myCombo.Text + stringToAppend
Finally, select the new text so they can keep typing:
myCombo.SelectionStart = myCombo.Text.Length - stringToAppend.Length
myCombo.SelectionLength = stringToAppend.Length