SelectCombo (2)




Const CB_SELECTSTRING As Long = &H14D
Const LB_SELECTSTRING As Long = &H18C
Declare Function SendMessageAsStr Lib "user32" _
Alias "SendMessageA" (ByVal hwnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
ByVal sParam As String) As Long
'Seleziona una stringa in un controllo ListBox o ComboBox

'restituendo l'indice in cui si trova o -1 se non trovata.

'ATTENZIONE! viene 'effettuata una ricerca senza

'distinzione tra maiuscole e minuscole e su stringhe anche

'parziali: ad esempio cercando "Auto" si trova anche

'"automobile"

Public Function SelectInList(ctl As Object, _
sDato As String) As Integer
'Fallisce di default

SelectInList = -1
'Confronta le stringhe ignorando la differenza tra

'maiuscole e 'minuscole

If TypeOf ctl Is ComboBox Then
SelectInList = SendMessageAsStr(ctl.hwnd, _
CB_SELECTSTRING, -1, sDato)
ElseIf TypeOf ctl Is ListBox Then
SelectInList = SendMessageAsStr(ctl.hwnd, _
LB_SELECTSTRING, -1, sDato)
End If
End Function
Come per la ricerca, possiamo usare le API di Windows per
selezionare un elemento in un ComboBox o ListBox
conoscendone il contenuto e non l'indice.

Ecco una funzione ad hoc:










( selectcombo2.html )- by Paolo Puglisi - Modifica del 17/12/2023