Su un'applicazione WinForms che sto scrivendo in C#, ho un DataGridViewTextBoxColumn con celle che contengono valori interi che vorrei che gli utenti fossero in grado di incrementare o decrementare usando i tasti + e - dalle loro tastiere.Utilizzo dei tasti della tastiera + (più) e - (meno) come incrementatori e decrementatori in un DataGridView
Ho gestito l'evento KeyDown perché è quello che uso di solito per gestire i tasti Canc, ecc. di conseguenza, l'evento KeyDown non viene mai attivato per tali chiavi. Lo stesso vale per l'evento KeyPress
In realtà, viene attivato se imposto le celle in sola lettura, ma non sono soddisfatto di questa soluzione poiché mi costringerebbe a impostare la proprietà da true a false in diverse aree del mio codice e potrebbe diventare rapidamente disordinato
Quale sarebbe il modo migliore per raggiungere questo obiettivo?
Grazie.
OK, grazie. Funziona. In realtà, una soluzione più semplice di quella mostrata nella KB è quella di impostare la proprietà KeyPreview del modulo su true e quindi gestire l'evento KeyDown del modulo. Mentre funziona, presenta diversi inconvenienti: alcuni elementi logici di DataGridView si trovano negli eventi correlati alla maschera piuttosto che negli eventi di DataGridView. Dato che la cella va ancora in modalità di modifica anche con questa soluzione, ho dovuto tenere traccia di se i tasti sono stati premuti e nelle colonne corrette in un flag bool e di annullare l'evento CellBeginEdit se il flag è true per impedirlo andare in modalità di modifica. –
A parte il fatto che non è elegante come avrei voluto, funziona abbastanza bene, quindi grazie mille. Lo lascerò aperto per un po 'nel caso in cui qualcun altro possa avere altri suggerimenti. –