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: |