Täysi esimerkki kuinka combobox saadaan tekemään saman tyyppistä tekstin syötön arvausta kuin esim. IE:n osoitinpalkki. Formille tarvitsee luoda combo1 niminen laatikko ja ei kun testaamaan.
Option Explicit
Private Backspaced As Boolean
Private Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam _
As Long, ByVal lParam As Long) As Long
Private Const CB_SHOWDROPDOWN = &H14F
Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)
On Error GoTo desckeyerror
If KeyCode = vbKeyBack Or KeyCode = vbKeyDelete Then
If Combo1.Text <> "" Then
'Let the Change event know that it
'shouldn't respond to this change.
Backspaced = True
End If
End If
Exit Sub
desckeyerror:
Resume Next
End Sub
Private Sub Combo1_Change()
If Backspaced = True Or Combo1.Text = "" Then
Backspaced = False
Exit Sub
End If
Dim i As Integer
Dim nSel As Long
nSel = Len(Combo1.Text)
For i = 0 To Combo1.ListCount - 1
If InStr(1, Combo1.List(i), Combo1.Text, _
vbTextCompare) = 1 Then
Combo1.ListIndex = i
Combo1.SelStart = nSel
Combo1.SelLength = Len(Combo1.Text) - nSel
Exit For
Else
End If
Next
Dim r As Long
r = SendMessageLong(Combo1.hwnd, CB_SHOWDROPDOWN, True, 0)
MousePointer = 0
End Sub
Private Sub Form_Load()
Combo1.AddItem "testi 4"
Combo1.AddItem "atesti 5"
Combo1.AddItem "btesti 1"
Combo1.AddItem "ctesti 6"
Combo1.AddItem "dtesti 2"
Combo1.AddItem "etesti 3"
End SubHieno!
kuinkas tuon saa toimimaan TextBox:ssa?
ei jumankauta etin netistä tätä ja jouduin säätämään suht. vaikeita koodeja ja nyt kuukausi myöhemmin tajuan sen olevan täällä :D
Pakko palata vanhaan juttuun kun on iso tarve...
Mitä tuossa pitäisi muuttaa että saisi ehdottamaan tietokannan tietyn sarakkeen sanoja? ja mielummin textBoxilla.
Aihe on jo aika vanha, joten et voi enää vastata siihen.