Hi all,
I searching for how to make autocomplete in textbox.
however there are list contain fruits name.
"Apple"
"Banana"
"Pear"
"Orange"
When i type "Ap" in textbox, program will completed the text and highlight the fruit name in listbox.
How i can do this.

Thank you

Recommended Answers

All 4 Replies

See if this helps :

Option Explicit

#If Win32 Then
    Private Const LB_FINDSTRING = &H18F
    Private Declare Function SendMessage Lib _
                    "User32" Alias "SendMessageA" (ByVal _
                    hWnd As Long, ByVal wMsg As Long, _
                    ByVal wParam As Long, lParam As Any) _
                    As Long

#Else

    Private Const WM_USER = &H400
    Private Const LB_FINDSTRING = (WM_USER + 16)
    Private Declare Function SendMessage Lib _
                    "User" (ByVal hWnd As Integer, ByVal _
                    wMsg As Integer, ByVal wParam As _
                    Integer, lParam As Any) As Long
#End If

Private Sub Form_Load()
    List1.AddItem "Orange"
    List1.AddItem "Banana"
    List1.AddItem "Apple"
    List1.AddItem "Pear"
End Sub

Private Sub Text1_Change()
    Dim pos As Long
    List1.ListIndex = SendMessage(List1.hWnd, LB_FINDSTRING, -1, ByVal CStr(Text1.Text))

    If List1.ListIndex = -1 Then
        pos = Text1.SelStart
    Else
        pos = Text1.SelStart
        Text1.Text = List1
        Text1.SelStart = pos
        Text1.SelLength = Len(Text1.Text) - pos
    End If

End Sub

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
    On Error Resume Next
    If KeyCode = 8 Then 'Backspace
        If Text1.SelLength <> 0 Then
            Text1.Text = Mid$(Text1, 1, Text1.SelStart - 1)
            KeyCode = 0
        End If
    ElseIf KeyCode = 46 Then 'Del
        If Text1.SelLength <> 0 And _
            Text1.SelStart <> 0 Then
            Text1.Text = ""
            KeyCode = 0
        End If
    End If
End Sub
commented: Thank you Jx_man for wonderful codes +2
commented: sir onr dought me. when i wrongly selected do backspace bar buuton tottaly erase.i want erase one by one backspace +0

Wow...it's working like a charm..
thank you jx_man.

You're Welcome. :)

commented: Very helpful person +2

Sir,need autocomplite textbox with 3 coloumn in vb6

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.