Click to See Complete Forum and Search --> : Comboboxwith auto select help please !


Simon Phillips
October 17th, 2001, 10:11 AM
I would be very grateful if someone could give me some ideas about this one :

I want to have a combobox on a form that a user can type a value into. The list attached to it will be populated with various common responses that they may select. Is there any way for me to automatically select the item as they are typing? For example, lets imagine it was a list of colours. If the user typed a B could BLUE appear in the box and then if the user carried on and type a R after the B could BROWN appear ? Do you get the gist ? Many thanks.

Iouri
October 17th, 2001, 10:18 AM
Declare Function SendMessage Lib ""User32"" Alias _
""SendMessageA"" (ByVal hWnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long

Const CB_ERR = -1
Const CB_FINDSTRING = &H14C


'Add the sub

Sub sMatchEntry(cbo As ComboBox, KeyAscii As Integer)
Dim sBuffer As String
Dim lRetVal As Long

sBuffer = Left(cbo.Text, cbo.SelStart) & Chr(KeyAscii)
lRetVal = SendMessage((cbo.hWnd), CB_FINDSTRING, _
-1, ByVal sBuffer)
If lRetVal <> CB_ERR Then
With cbo
.ListIndex = lRetVal
.Text = .List(lRetVal)
.SelStart = Len(sBuffer)
.SelLength = Len(.Text)
End With
KeyAscii = 0
End If
End Sub

' in the KeyPress Event of the Combobox, add:

Private Sub Combo1_KeyPress(KeyAscii As Integer)
sMatchEntry Combo1, KeyAscii
End Sub"





Iouri Boutchkine
iouri@hotsheet.com