Public Sub AutoCompleteCombo_KeyUp(ByVal cbo As ComboBox, ByVal e As KeyEventArgs)
Dim sTypedText As String
Dim iFoundIndex As Integer
Dim oFoundItem As Object
Dim sFoundText As String
Dim sAppendText As String
'Не использовать автозаполнение
Select Case e.KeyCode
Case Keys.Back, Keys.Left, Keys.Right, Keys.Up, Keys.Delete, Keys.Down
Return
End Select
'Получить напечатаный текст, и найти его в списке
sTypedText = cbo.Text
iFoundIndex = cbo.FindString(sTypedText)
'Если текст найден, то добавить недостающие символы
If iFoundIndex >= 0 Then
'Получить нужный пункт из списка
oFoundItem = cbo.Items(iFoundIndex)
'Получить текст найденого пункта
sFoundText = cbo.GetItemText(oFoundItem)
'Добавить и выделить недостающие символы
sAppendText = sFoundText.Substring(sTypedText.Length)
cbo.Text = sTypedText & sAppendText
cbo.SelectionStart = sTypedText.Length
cbo.SelectionLength = sAppendText.Length
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
With ComboBox1.Items
.Add("www.vbnet.ru")
.Add("hello")
.Add("hi")
.Add("привет")
.Add("дарова!!!")
End With
ComboBox1.Sorted = True
End Sub
Private Sub ComboBox1_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs)
Handles ComboBox1.KeyUp
'Использовать автозаполнение
AutoCompleteCombo_KeyUp(ComboBox1, e)
End Sub