.Net e cose fastidiosissime nel 2012
A volte ti trovi di fronte a problematiche imbarazzanti nella loro semplicità, ma all’atto pratico gineprai esplosivi.
In HTML una combobox è banalmente un oggetto/elemento in sola lettura, con un elemento della lista selezionato.
In .Net il controllo Combobox appartenente a System.Windows.Forms possiede tre stili possibili (Simple, DropDown e DropDownList). Di questi solo l’ultimo genera una lista in sola lettura.
Quale era il problema? Rendere a seconda del contesto editabile o meno la combobox e nel caso non fosse modificabile, presentare la stessa lista di elementi (mantenendo quello precedentemente selezionato). Purtroppo però una volta che cambiavo lo stile, la combobox perdeva l’elemento selezionato…
La soluzione più rapida ma al contempo bizzarra l’ho trovata qua :
- Disabilitare l’inserimento di caratteri da tastiera, cosicchè la combobox sembri readonly. E questo si realizza intercettando l’evento onkeydown.
- Disabilitare cut&paste del mouse da parte di utenti fregaioli. Per evitare occorre: creare unContextMenuStrip vuoto ed assegnarlo alla combobox
O_o