Postup:
Na formulář přidejte ComboBox.
Pojmenujte jej cboAuto.
Do deklararční části formuláře zapište:
Option Explicit
Dim BackSpaced As Boolean
Na událost Load formuláře
zapíšeme naplnění Comba:
With cboAuto
.AddItem "http://www.vbthunder.com"
.AddItem "http://www.mvps.org/vb/"
.AddItem "http://www.mvps.org/vbnet/"
.AddItem "http://www.zonecorp.com"
.AddItem "http://www.microsoft.com"
.AddItem "http://www.mvps.org/ccrp/"
End With
Pro události na Combu:
Private Sub cboAuto_KeyDown(KeyCode
As Integer, Shift As Integer)
If KeyCode = vbKeyBack Or KeyCode = vbKeyDelete Then
If cboAuto.Text <> "" Then
'Důležité pro událost Change
'jinak neodpoví na
mazání znaku.
BackSpaced = True
End If
End If
End Sub
Private Sub cboAuto_Change()
'Pokud
byla stisknuta klávesa Backspace
'nebo Delete, nelze spustit AutoComplete
'Jinak se nebudete schopni vrátit
If BackSpaced = True Or cboAuto.Text = "" Then
BackSpaced = False
Exit Sub
End If
Dim i As Long
Dim nSel As Long
'Proběhneme
skrz položky comba
'a nalezneme první výskyt řetězce.
For i = 0 To cboAuto.ListCount
- 1
If InStr(1, cboAuto.List(i), cboAuto.Text,
vbTextCompare) = 1 Then
'uložení SelStart
nSel = cboAuto.SelStart
cboAuto.Text = cboAuto.List(i)
'Nastavení výběru v Combu
cboAuto.SelStart =
nSel
cboAuto.SelLength = Len(cboAuto.Text) - nSel
Exit For
End If
Next
End Sub
A teď aplikaci spusťte.
Zkuste psát do comba.
|