Это, без сомнения, может быть сделано более элегантно, но вот основные принципы (извиняюсь за любые проблемы с синтаксисом, я не большой парень VB):
В событии KeyUp:
- Убедитесь, что клавиша не является клавишей навигации:
if e.KeyCode <> Keys.Back [...]
- Поиск в списке предметов для набранного текста:
idx = myCombo.FindString(myCombo.Text)
- Возьмите найденный предмет комбо:
s = myCombo.GetItemText(idx)
- вставить его в свойство .Text:
myCombo.Text = s
Обратите внимание, что это приведет к переопределению всего введенного пользователем (уничтожение регистра). Вы можете улучшить это, добавив вместо этого пропущенную часть:
stringToAppend = s.SubString(myCombo.Text.Length)
myCombo.Text = myCombo.Text + stringToAppend
Наконец, выберите новый текст, чтобы они могли продолжать печатать:
myCombo.SelectionStart = myCombo.Text.Length - stringToAppend.Length
myCombo.SelectionLength = stringToAppend.Length