Ciao a tutti. Ho un DataGridView dove su ogni riga ho messo sia campi testo che campi con combobox. Funziona tutto correttamente ma ho solo uno spiacevole inconveniente: dopo aver selezionato un elemento nella combobox (con quindi il focus che resta nella combobox) sposto il mouse in altra zona della DGV e uso la rotellina per scorrere le righe della DGV. Il risultato è però diverso da quello atteso ovvero scorre gli elementi della combo e non le righe della DGV. L'utente magari non si è accorto di questo e allora non vedendo scorrere le righe fa click da qualche altra parte della DGV e lo scorrimento delle righe funziona. Però il danno è già fatto perchè al momento poi della memorizzazione delle modifiche non si è reso conto che la combobox non contiene più il'elemento scelto ma quello ottenuto dallo scorrimento.
E' possibile evitare questo comportamento "bizzarro"?
Avevo pensato di imporre lo spostamento del focus al momento della chiusura dell'elenco della combo (ad esempio nella cella accanto) ma non mi pare una bella pensata anche perchè potrei avere una riga composta tutta da combobox. Un'altra possibile soluzione potrebbe essere quella di intercettare (nell'evento di modifica della combo) la posizione del mouse e se questa non è nell'area della combo annullare l'operazione. Ma non sono sicuro che per quest'ultima soluzione sia possibile verificare che il mouse si trovi esattamente nella regione della combo (ad esempio con elenco molto lungo e aperto il cursore potrebbe trovarsi abbastanza distante dalla combo).
Avete qualche suggerimento furbo per evitare questo problema? Oppure è l'utente che deve solo stare attento (e qui non ci metto le mani sul fuoco anche perchè questo comportamento capita anche al sottoscritto e anche se me lo aspetto a volte sono distratto...)
Grazie
Stefano