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 Sub
Hieno!
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.