Ho una ComboBox contenente una lunga lista di causali; vorrei far sì che a fine digitazione di una stringa di caratteri (click sul triangolino a dx della ComboBox o attraverso la pressione del tasto freccia-giù o Pag-giù), si apra la relativa finestra di popup all'interno della quale siano visibili tutte le causali presenti nella lista, a partire però dalla prima contenente la stringa digitata. Quindi
se scrivo in ComboBox.Text
"spe" e nella CombBox.List mi ritrovo le seguenti causali:
rullino kodacolor da 36 exp.
ruote per divano in ferro
sost.ne scheda elettronica di apertura/chiusura cancello
sost.ne vetro nel carrelo portatelevisore
stampa foto
sviluppo e stampa fotografie varie
tabacco
tagliando auto
teglia in vetro
il click sul triangolino a dx della casella ComboBox, dovrebbe presentare una finestra di popup, contenente le seguenti righe
sost.ne scheda elettronica di apertura/chiusura cancello
sost.ne vetro nel carrelo portatelevisore
stampa foto
sviluppo e stampa fotografie varie
tabacco
tagliando auto
teglia in vetro
a partire quindi dalla prima riga della lista contenente, a scalare, i caratteri della stringa, da un massimo equivalente a tutti quelli digitati ad un minimo di 1 carattere, il primo della stringa e, in mancanza di corrispondenza, dalla causale il cui primo carattere sia > del primo digit inserito in ComboBox.Text.
Mentre Il problema non si pone con la pressione dei tasti
Freccia-giù o
Pag-giù, perchè basta individuare il codice tasto e gestire l'evento dentro una function adatta all'occorrenza:
Public Sub DescrMovDig_KeyPress()
QualeTasto = New CheTasto($_StriMia)
Select Case QualeTasto.$_Como
Case "Freccia-giù", "Pag-giù"
PreparoPopup(DescrMovDig.Text)
DescrMovDig.Popup
End Select
la cosa assume una situazione completamente diversa se voglio intercettare l'evento popup scatenato dal click del mouse sul triangolino a dx della ComboBox. Infatti, non sono riuscito a trovare l'evento specifico.