IboxMAtic



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


(iboxmatic.html)- by Paolo Puglisi - Modifica del 25/3/2019