La clase DataGridViewCheckBoxCell es un tipo especializado de DataGridViewCell que se utiliza para mostrar información binaria o ternaria presentada a través de una interfaz de usuario de tipo casilla de verificación. En el modo binario predeterminado, las celdas pueden contener valores de true o false. En modo ternario, las celdas toman uno de los valores de CheckState. La propiedad ThreeState determina si está vigente el modo binario o ternario.
DataGridViewCheckBoxColumn corresponde al tipo de columna especializado con el fin de contener celdas de este tipo. Para modelar las celdas dentro de una columna como un control DataGridViewCheckBoxCell existente, establezca la propiedad CellTemplate de la columna en esa celda. De manera predeterminada, la propiedad CellTemplate se inicializa con una nueva DataGridViewCheckBoxCell.
Las propiedades de la columna relacionadas con celdas actúan como contenedores para las propiedades con nombres similares de la celda de plantilla. Al cambiar los valores de propiedad de la celda de plantilla sólo se verán afectadas las celdas que estén basadas en la plantilla y se hayan agregado después del cambio. Al cambiar los valores de propiedad relacionados con las celdas de la columna, sin embargo, se actualizará la celda de la plantilla y también todas las demás celdas de la columna, actualizando su presentación si es necesario.
Cuando la celda actual es DataGridViewCheckBoxCell, la propiedad DataGridView.IsCurrentCellInEditMode siempre es true.
Normalmente, los valores de celda de una casilla de verificación están pensados para el almacenamiento, como cualquier otro dato, o para realizar operaciones masivas. Si desea responder inmediatamente cuando los usuarios hacen clic en una celda de una casilla de verificación, puede controlar el evento DataGridView.CellClick, pero este evento se produce antes de que se actualice el valor de la celda. Si necesita el nuevo valor en el momento del clic, una de las opciones es calcular que el valor esperado se basará en el valor actual. Otro enfoque es confirmar inmediatamente el cambio y controlar el evento DataGridView.CellValueChanged para responder a él. Para confirmar el cambio cuando se hace clic en la celda, debe controlar el evento DataGridView.CurrentCellDirtyStateChanged. En el controlador, si la celda actual es una celda de una casilla de verificación, llama al método DataGridView.CommitEdit y pase el valor Commit.
Notas para los herederos:
Cuando derive del control
DataGridViewCheckBoxCell y agregue nuevas propiedades a la clase derivada, asegúrese de reemplazar el método
Clone para copiar las nuevas propiedades durante las operaciones de clonación. También debe llamar al método
Clone de la clase base para que las propiedades de la clase base se copien a la nueva celda.