Problema con toolstripcombobox

lunedì 21 maggio 2007 - 16.33

senzavento Profilo | Newbie

Ciao a tutti,
ho il seguente problema con un toolstripcombobox. Vorrei che il comportamento del combobox fosse il seguente:
digito almento 3 caratteri nel combo, premo invio, da codice eseguo una ricerca in db con tutti i codici articolo che iniziano con i caratteri inseriti dall'utente, apro in automatico la tendina della combo, l'utente seleziona un item, e vengonoeseguite determinate azioni su un altro controllo (treeview).
Tutto funziona, ma ho un problema, se l'utente utilizza solo il mouse tutto ok.
Se invece quando apro in automatico la tendina del combo l'utente usa la tastiera, tasti su e giù per lo spostamento tra gli item e invio per confermare un item, non riesco a distinguere se l'invio è avvenuto all'interno della tendina o nell'editor di testo.
C'è la proprietà DroppedDown ma se la testo in qualsiasi funzione di gestione dei tasti keyup,down, press, mi vale sempre 0....sembra quasi che chiusa la tendina e poi gestisca il tasto premuto.
Suggerimenti?

grazie
a.

munissor Profilo | Senior Member

Allora..in teoria il toolstripcombobox dovrebbe avere al suo interno un combobox standard di windows. La tecnica è la seguente:

Il combobox è formato da 2 controlli, un editbox, e un listbox che viene reso visibile dal sistema quando necessario (la tendina).

Tu dovresti eseguire il subclassing del combobox, ottenere gli handle dei 2 controlli figli, e sostituirne la WindowProc con una tua.

A questo punto gestendo i messaggi (di windows..es: WM_*) riesci a fare praticamente cià che vuoi.

Se sai bene come funzionano le finestre in windows dovrebbe essere un gioco da ragazzi. Altrimenti non sarà proprio una passeggiata ma è fattibile come cosa..

Ciao!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5