En una aplicación de WinForms que estoy escribiendo en C#, tengo un DataGridViewTextBoxColumn con celdas que contienen valores enteros que me gustaría que los usuarios capaz de incrementar o disminuir usando las teclas + y - de sus teclados.Usando + (más) y - (menos) teclas del teclado como incrementos y decrementadores en un DataGridView
He manejado el evento KeyDown ya que es lo que uso generalmente para manejar las teclas Eliminar, etc., pero no funciona para las teclas Más y Menos ya que presionarlas hace que la Célula entre en modo Edición, y el evento KeyDown nunca se activa para esas claves como resultado. Lo mismo para el evento KeyPress
En realidad, se dispara si configuro las celdas de solo lectura, pero no estoy contento con esta solución ya que me obligaría a establecer la propiedad de verdadera a falsa en varias áreas de mi código y podría volverse desordenado rápidamente
¿Cuál sería la mejor manera de lograrlo?
Gracias.
Muy bien, gracias. Está funcionando. En realidad, una solución más simple que la que se muestra en la KB es establecer la propiedad KeyPreview del formulario en true y luego manejar el evento KeyDown del formulario. Mientras funciona, tiene varios inconvenientes: una cierta lógica de DataGridView está en eventos relacionados con el formulario en lugar de estar en los eventos de DataGridView. Como la celda todavía entra en modo de edición incluso con esta solución, tuve que hacer un seguimiento de si las teclas fueron presionadas y en las columnas correctas en un indicador bool, y cancelar el evento CellBeginEdit si el indicador es verdadero para evitarlo para entrar en modo de edición. –
Aparte del hecho de que no es tan elegante como hubiera querido, esto funciona bastante bien, así que muchas gracias. Voy a dejar esto abierto por un tiempo, solo en caso de que alguien más tenga otras sugerencias. –